BigDecimal in Haskell

Apr 19, 2011 09:53

Скажите, пожалуйста, кто что использует для arbitrary precision computations в Haskell? Интересует аналог BigDecimal в java - при делении задаём режим округления, можно использовать для денег. Ну и важно иметь человеческий Read/Show.

Кроме библиотеки Jeremy Shaw есть что-нибудь стоящее? Мне не нравится, что она не на hackage и у неё есть ( ( Read more... )

haskell, arithmetic, arbitrary precision, вопрос

Leave a comment

Comments 9

nivanych April 19 2011, 08:01:15 UTC
Если не секрет, для чего?

Reply

lomeo April 19 2011, 08:15:01 UTC
Да я несколько раз натыкался на отсутствие стандартных длинных decimal в Haskell - один проект был с типом денег, но там сравнительно просто было - я Integer использовал. Потом было несколько задач, где плавающая точка очень мешала, тогда и нашёл decimal от Jeremy Shaw. Сейчас у меня сериализация в/из строки, представь json с длинными decimal, например.

Вопрос не относится к каким-то моим задачам. Мне интересно, что люди вообще используют в случаях, когда в Java берут BigDecimal.

Reply

nivanych April 19 2011, 08:56:38 UTC
Ну, любопытно.
Вроде, в классе Integral описано деление с остатком, может быть, на основе этого...

Reply

lomeo April 19 2011, 09:10:15 UTC
Очень важно иметь сериализацию. Скажем, прочитать какой-нибудь 1.234e-567

В Integral только mod/rem, насколько я помню. Десятичных дробей нет. Плюс я же хочу округление выбирать сам ;-)

Reply


voidex April 19 2011, 13:30:55 UTC
Оберни Ratio

Reply

lomeo April 19 2011, 13:52:54 UTC
Думал, но нет show/read и мне нужен именно decimal. А Ratio как начнёт нормализовать :(

Reply

voidex April 19 2011, 14:01:15 UTC
Тогда оберни Integer. А show/read, что его там писать-то?

Reply

lomeo April 19 2011, 14:27:06 UTC
М? Infinity, NaN, различные способы округления, там до фига писать вообще-то. Самому рисовать арифметические операции с нуля как-то лениво.

Да и вообще - вопрос о том, чем люди пользуются? Ты вот Integer оборачиваешь что ли? :)

Reply


Leave a comment

Up