Haskell程式將雙精度型別變數轉換為整數
在 Haskell 中,我們將使用使用者定義函式 doubleToInt 以及 floor、round 和 ceiling 函式將雙精度型別變數轉換為整數。在第一個示例中,我們將使用 (doubleToInt d = floor d) 函式,在第二個示例中,我們將使用 (doubleToInt d = round d) 函式。在第三個示例中,我們將使用 (doubleToInt d = ceiling d) 函式。
演算法
步驟 1 − 使用 floor 函式定義 doubleToInt 函式,如下所示:doubleToInt d = floor d。
步驟 2 − 程式執行將從 main 函式開始。main() 函式控制整個程式。它被寫成 main = do。
步驟 3 − 初始化名為“d”的變數。它將儲存要轉換為相應整數型別的雙精度值。
步驟 4 − 呼叫 doubleToInt 函式並將 d 傳遞給它。
步驟 5 − 函式呼叫後,使用 'putStrLn' 語句將結果整數型別值列印到控制檯。
示例 1
在此示例中,定義了一個函式 doubleToInt,它接收一個 Double 型別的 d 值並返回一個 Int 值,使用 floor 函式將其向下舍入到最接近的整數。然後它定義了一個 main 函式,該函式使用一個 Double 值呼叫 doubleToInt 並打印出原始 Double 值和結果 Int 值。
doubleToInt :: Double -> Int
doubleToInt d = floor d
main :: IO ()
main = do
let d = 3.14159
i = doubleToInt d
putStrLn $ "The value of d is " ++ show d
putStrLn $ "The value of i is " ++ show i
輸出
The value of d is 3.14159 The value of i is 3
示例 2
在此示例中,round 函式將 Double 值舍入到最接近的整數,並將其作為 Integral 型別返回,該型別可以直接轉換為 Int。
doubleToInt :: Double -> Int
doubleToInt d = round d
main :: IO ()
main = do
let d = 3.14159
i = doubleToInt d
putStrLn $ "The value of d is " ++ show d
putStrLn $ "The value of i is " ++ show i
輸出
The value of d is 3.14159 The value of i is 3
示例 3
在此示例中,ceiling 函式將 Double 值向上舍入到最接近的整數,並將其作為 Integral 型別返回,該型別可以直接轉換為 Int。
doubleToInt :: Double -> Int
doubleToInt d = ceiling d
main :: IO ()
main = do
let d = 3.14159
i = doubleToInt d
putStrLn $ "The value of d is " ++ show d
putStrLn $ "The value of i is " ++ show i
輸出
The value of d is 3.14159 The value of i is 4
結論
雙精度到整數的轉換是將 Double 資料型別轉換為 Int 資料型別的過程。Double 是一種浮點資料型別,可以高精度地儲存小數,而 Int 是一種整數資料型別,只能儲存整數。在 Haskell 中,使用使用者定義的 doubleToInt 函式以及 floor、round 和 ceiling 函式將 Int 變數轉換為雙精度型別。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP