Date: Jan 20, 2013 3:49 AM
Author: S.K.Mody
Subject: Re: How to avoid wrong answers in simple arithmetic expressions.

"James Tursa" wrote in message <kdfc0c$v7$1@newscl01ah.mathworks.com>...

> False. 9 has an exact IEEE double representation. 0.09 does not ... the closest is:
>
> 0.0899999999999999966693309261245303787291049957275390625
>

> > More generally, most integers do not have an exact representation in this format.
>
> False. All of the integers in the range of your particular problem can be represented exactly in IEEE double. All integers from 0 up to 2^53 have exact IEEE double representations.


OK. I got it (after some embarrassment). The IEEE 754 format description on Wikipedia was a bit confusing - all those negative powers of 2! It really boils down to - if a number can be represented as a sum of powers of 2, then it has an exact representation - so all integers (within some range) will have an exact representation.

Nevertheless, it does appear that exact calculations even with integers has to be thought through on a case by case basis.

Best Regards.

> > So, does Matlab treat small integers in a special way?
>
> No. They are treated just like all other IEEE double numbers.
>
>
> James Tursa