是否有一个简单的功能可以将Double
或Float
舍入到指定的位数?我在这里搜索了Hoogle((Fractional a) => Int -> a -> a
),但没有找到任何东西。
答案 0 :(得分:33)
不确定是否存在任何标准函数,但您可以这样做:
(fromInteger $ round $ f * (10^n)) / (10.0^^n)
答案 1 :(得分:8)
这取决于你要用舍入数字做什么。
如果您想在计算中使用它,则应使用Data.Decimal
库中的Decimal
。
如果您只想很好地格式化数字,则应使用标准库(Text.Printf
包)中的base
。
答案 2 :(得分:1)
λ: ((/100) $ fromIntegral $ round (0.006 * 100)) == 0.006
λ: False
λ: ((/100) $ fromIntegral $ round (0.06 * 100)) == 0.06
λ: True