Do you know where your variables are? | |
PerlMonks |
adding numbers and floating point errorsby smeenz (Sexton) |
on Nov 22, 2006 at 21:24 UTC ( [id://585615]=perlquestion: print w/replies, xml ) | Need Help?? |
smeenz has asked for the wisdom of the Perl Monks concerning the following question:
Hi,
Today I discovered that floating point errors seem to be much more of a problem than I had anticipated. Specifically, it seems that if I set up a simple loop to add 0.05 to a variable and then display the result, it quickly goes wrong. For example, the following code:
produces this:
which is... okayish.. because the errors only show up when I force sprintf to display to 40dp... the problem is that even though I'm only adding 0.05 (and not 0.00000000000000000000000005), the error still creeps into the results pretty quickly. If I change the loop to run from 0 to 4, which is 100 interations, perl tells me at iteration 74 that 3.65 + 0.05 = 3.69999999999999. I'm not sure what to think of this.. I wouldn't have expected that adding 0.05 to a number 74 times would start to produce errors as soon as the 1st decimal place.
Back to
Seekers of Perl Wisdom
|
|