Round number to specified number of digits

2020-05-30 07:05发布

Is there a simple function to round a Double or Float to a specified number of digits? I've searched here and on Hoogle (for (Fractional a) => Int -> a -> a), but haven't found anything.

3条回答
Ridiculous、
2楼-- · 2020-05-30 07:52

It depends on what you are going to do with the rounded number.

If you want to use it in calculations, you should use Data.Decimal from Decimal library.

If you want just to format the number nicely, you should use Text.Printf from the standard library (base package).

查看更多
神经病院院长
3楼-- · 2020-05-30 08:00

Not sure whether any standard function exists, but you can do it this way:

 (fromInteger $ round $ f * (10^n)) / (10.0^^n)
查看更多
来,给爷笑一个
4楼-- · 2020-05-30 08:05
λ: ((/100) $ fromIntegral $ round (0.006 * 100)) == 0.006
λ: False

λ: ((/100) $ fromIntegral $ round (0.06 * 100)) == 0.06
λ: True
查看更多
登录 后发表回答