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 變數轉換為雙精度型別。

更新於: 2023年4月20日

622 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.