"Peteroid" <pe************@msn.com> wrote in message
news:%2***************@TK2MSFTNGP12.phx.gbl...
Try putting this in your code:
double x(.008) ; // 8/1000
double y(.064) ; // 64/1000
double z(x+y) ; // 72/1000 ?
You'd think that z = .072. Nope, z = 0.072000000000000008. That seems
REALLY inaccurate to me. Is there a floating-point package (3rd party)
that boasts being more accurate AND is known to be reliable, simple to
use, and hopefully somewhat cheap? Thanx in advance for any help...! : )
You need to learn what to expect from binary floating point. If you need
precise decimal accuracy (e.g. for financial work), you need to use a
fixed-point class, such as the System.Decimal type in .NET (which is a
wrapper over the OLE Automation Decimal type).
See
http://docs-pdf.sun.com/800-7895/800-7895.pdf for lots of information on
what you can really expect from binary floating point math.
-cd