[Haskell-cafe] What is a safe Haskell data type to store and manipulate Money values?

Joachim Durchholz jo at durchholz.org
Tue Apr 4 15:34:34 UTC 2017


Am 04.04.2017 um 17:10 schrieb David Turner:
> On 4 April 2017 at 15:50, Joachim Durchholz <jo at durchholz.org
> <mailto:jo at durchholz.org>> wrote:
>
>     Am 04.04.2017 um 16:13 schrieb ALeX Kazik:
>
>         Rational?
>
>     You'd be constantly be doing explicit calculations to get back to a
>     denominator of 100. Plus you'd have to deal with those cases where
>     the denominator is a divisor of 100, and you'd need explicit
>     nonstandard conversion to strings.
>
>
>
> The same sort of fiddling-the-denominator problems also occur if you use
> `Decimal` - it's not normally useful to be able to represent things
> smaller than £0.01 (or whatever the smallest unit of your local currency
> is); I'd even go as far as to say it's useful to be able to be sure that
> you _can't_ represent such things (in the domain of basic accounting at
> least - more complex things may deal with smaller fractions of currency,
> so YMMV etc).

Decimal has a roundTo function, Rational does not.


More information about the Haskell-Cafe mailing list