Money type
Basile B.
b2.temp at gmx.com
Thu Jan 2 13:58:17 UTC 2020
On Wednesday, 1 January 2020 at 22:26:30 UTC, Ola Fosheim Grøstad
wrote:
> On Wednesday, 1 January 2020 at 22:04:00 UTC, IGotD- wrote:
>> Using floating point is not recommended. For some fractional
>> number it is actually impossible to store the value as a
>> rational binary number. For example 8.90 would be stored as
>> 8.89999999999+ (in reality this is binary values so just think
>> of my example in an equivalent binary value case). This would
>> lead to some rounding errors, especially when chaining several
>> operations.
>
> No, not if you store as cents. You get the exact same values as
> with 53 bits integers with IEEE754.
>
> You have to pay atttentition to rounding mode, even-odd is
> common.
>
>
>> You should go for a representation that always calculates the
>> currency exact, down to the cent or whatever it is. Not doing
>> so you might even be breaking the law for some appliances.
>
> Double will do that fine. As I said, same as integer. If you
> need half-cents, just multiply with 200 instead of 100. Or you
> could use millis (multiply by 1000).
Yyou're all silly guys. Don't use floating point for currency,
just make a Currency fixed point custom type.
More information about the Digitalmars-d
mailing list