Haskell程式:將數字舍入到n位小數
在 Haskell 中,我們可以使用 round、printf 和 truncate 函式將數字舍入到 n 位小數。在第一個示例中,我們將使用 (roundTo n x = (fromInteger $ round $ x * (10^n)) / (10.0^^n)) 函式,在第二個示例中,我們將使用 (roundTo n x = read $ printf ("%." ++ show n ++ "f") x) 函式。在第三個示例中,我們將使用 (roundTo n x = fromIntegral (truncate $ x * 10^n) / 10^n)。
演算法
步驟 1 − 使用 round 函式定義 roundTo 函式
步驟 2 − 程式執行將從 main 函式開始。main() 函式控制整個程式。它被寫成 main = do。
步驟 3 − 定義名為 'x' 的變數,該變數將儲存要舍入到 n 位小數的十進位制數字值。
步驟 4 − 呼叫 roundTo 函式,並將數字以及應舍入到的十進位制位數作為引數傳遞給它。
步驟 5 − 一旦函式被呼叫,將舍入後的數字值(舍入到 n 位小數)列印到控制檯。
示例 1
在此示例中,使用 round 函式將數字舍入到 n 位小數。
roundTo :: Int -> Double -> Double roundTo n x = (fromInteger $ round $ x * (10^n)) / (10.0^^n) main :: IO () main = do let x = 3.14159265358979323846264338327950288419716939937510 let rounded = roundTo 4 x putStrLn $ "Original number: " ++ show x putStrLn $ "Number rounded to 4 decimal places: " ++ show rounded
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... Original number: 3.141592653589793 Number rounded to 4 decimal places: 3.1416
示例 2
在此示例中,使用 printf 函式將數字舍入到 n 位小數。
import Text.Printf (printf)
roundTo :: Int -> Double -> Double
roundTo n x = read $ printf ("%." ++ show n ++ "f") x
main :: IO ()
main = do
let x = 3.14159265358979323846264338327950288419716939937510
let rounded = roundTo 4 x
putStrLn $ "Original number: " ++ show x
putStrLn $ "Number rounded to 4 decimal places: " ++ show rounded
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... Original number: 3.141592653589793 Number rounded to 4 decimal places: 3.1416
示例 3
在此示例中,使用 truncate 函式將數字舍入到 n 位小數。
roundTo :: Int -> Double -> Double roundTo n x = fromIntegral (truncate $ x * 10^n) / 10^n main :: IO () main = do let x = 3.14159265358979323846264338327950288419716939937510 let rounded = roundTo 4 x putStrLn $ "Original number: " ++ show x putStrLn $ "Number rounded to 4 decimal places: " ++ show rounded
輸出
[1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... Original number: 3.141592653589793 Number rounded to 4 decimal places: 3.1415
結論
在 Haskell 中將數字舍入到 n 位小數意味著您希望將給定數字舍入到特定的小數位數,其中 n 是您要舍入到的位數。我們可以透過使用 round、printf 和 truncate 函式來實現這一點。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP