Есть ли простая функция для округления Double
или Float
к указанному числу цифр? Я искал здесь и в Hoogle (для (Fractional a) => Int -> a -> a
), но ничего не нашел.
Круглый номер до указанного количества цифр
Ответ 1
Не уверен, существует ли какая-либо стандартная функция, но вы можете сделать это следующим образом:
(fromInteger $ round $ f * (10^n)) / (10.0^^n)
Ответ 2
Это зависит от того, что вы собираетесь делать с округленным числом.
Если вы хотите использовать его в вычислениях, вы должны использовать библиотеку Data.Decimal
из Decimal
.
Если вы хотите просто форматировать номер красиво, вы должны использовать Text.Printf
из стандартной библиотеки (base
package).
Ответ 3
λ: ((/100) $ fromIntegral $ round (0.006 * 100)) == 0.006
λ: False
λ: ((/100) $ fromIntegral $ round (0.06 * 100)) == 0.06
λ: True