[NetBehaviour] The trouble with rounding floating point numbers.
marc
marc.garrett at furtherfield.org
Tue Aug 15 12:26:22 CEST 2006
The trouble with rounding floating point numbers.
So, Prudence, computers do make mistakes…
By Dan Clarke.
We all know of floating point numbers, so much so that we reach for them
each time we write code that does math. But do we ever stop to think
what goes on inside that floating point unit and whether we can really
trust it?
I hate to cast aspersions on its good name but when I hear stories of
space craft crashing, inconsistent information on bank statements and
pensioners being short changed (all of which have happened: see, for
example, Risks Digest entries here and here), I start to realise that
there is a real danger of misusing floating point numbers. Indeed,
anyone with a few years of experience under their belt will probably
have either had the pleasure of dealing with a floating-point related
bug; or have watched a colleague slowly go crazy over one.
Often, the underlying cause of such problems falls into common
categories: a division by zero or a narrowing conversion that loses
information. Other times however, it's not so evident – sometimes the
cause is the futile attempt of a software developer to round a
floating-point number.
That's right, one of the most basic operations in math, a thing that we
learn to do before we can ride a bike, eludes the combined efforts of
the finest engineers over the last 30 years. Of course, this is
something that is intuitively nonsensical - why should it be impossible
to round a floating-point number reliably?
more...
http://www.regdeveloper.co.uk/2006/08/12/floating_point_approximation/
More information about the NetBehaviour
mailing list