
Re: How to avoid wrong answers in simple arithmetic expressions.
Posted:
Jan 20, 2013 3:49 AM


"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

