Круглый номер до указанного количества цифр - программирование
Подтвердить что ты не робот

Круглый номер до указанного количества цифр

Есть ли простая функция для округления Double или Float к указанному числу цифр? Я искал здесь и в Hoogle (для (Fractional a) => Int -> a -> a), но ничего не нашел.

4b9b3361

Ответ 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