float equality

Jonathan M Davis jmdavisProg at gmx.com
Mon Feb 21 02:48:41 PST 2011


On Monday 21 February 2011 01:55:28 Walter Bright wrote:
> Kevin Bealer wrote:
> > 1. To solve the basic problem the original poster was asking -- if you
> > are working with simple decimals and arithmetic you can get completely
> > accurate representations this way.  For some cases like simple financial
> > work this might work really well. e.g. where float would not be because
> > of the slow leak of information with each operation.  (I assume real
> > professional financial work is already done using a (better)
> > representation.)
> 
> A reasonable way to do financial work is to use longs to represent pennies.
> After all, you don't have fractional cents in your accounts.
> 
> Using floating point to represent money is a disaster in the making.

Actually, depending on what you're doing, I'm not sure that you can legally 
represent money with floating point values. As I understand it, there are definite 
restrictions on banking software and the like with regards to that sort of thing 
(though I don't know exactly what they are).

Regardless, if you want to deal with money correctly, you pretty much have to 
treat it as cents and use integer values. Anything else will cause too many 
errors. That's definitely the way I've seen it done at any company that I've work 
at which have had to deal with money in their software.

- Jonathan M Davis


More information about the Digitalmars-d mailing list