http://www.perlmonks.org?node_id=805500


in reply to Re: Fun with floating points
in thread Fun with floating points

I had a reason to post it as I did.

In the actual application where I had this issue, the workflow was something like this: data was read off from data files and stored in a Storable file. Later, these Storable files were retrieved, and the data in them was further processed. And finally I used a numerical comparison to get the result (is the number dug up from the Storable archives bigger than a pre-specified limit). However, Storable stores floating point numbers as text, at least it did in my application.

So the real issue here is that it is awesomely convenient to have scalars-that-are-both-numbers-and-strings in Perl, but one has to be careful and know that it may lead to strange results sometimes.

Replies are listed 'Best First'.
Re^3: Fun with floating points
by chomzee (Beadle) on Nov 08, 2009 at 10:41 UTC
    String/float conversion is not the only problem while dealing with floats. Consider following example:
    perl -e '$x=1/3; $x-=1/2; $x+=1/3; $x-=1/2; $x+=1/3; print $x,"\n"'
    $x should be equal to zero but it isn't.