[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