Bug #52324 [Bgs->Dup]: bad result when adding two floats
Edit report at http://bugs.php.net/bug.php?id=52324&edit=1
ID: 52324
Updated by: aharvey@php.net
Reported by: brunog at micro-examples dot com
Summary: bad result when adding two floats
-Status: Bogus
+Status: Duplicate
Type: Bug
Package: *General Issues
Operating System: ubuntu
PHP Version: 5.2.14RC2
New Comment:
Actually, the colon is part of the output here: we have a rare bug
that seems to be platform, architecture, compiler and optimisation
level dependent. (It may also involve the phase of the moon, but we
can't be absolutely sure -- I've never been able to reproduce it,
and I've tried pretty hard.)
Other bugs discussing this issue include bug #47716, bug #49764 and
bug #51396.
Previous Comments:
------------------------------------------------------------------------
[2010-07-13 01:35:03] brunog at micro-examples dot com
strangely it works fine on an older php version
PHP Version => 5.1.6
gives 0.1 as expected
------------------------------------------------------------------------
[2010-07-13 01:16:39] rasmus@php.net
It doesn't show 0.0 on any PHP version I have access to. No idea about
your
5.2.4. That's from 3 years ago. I don't have anything that old on any
of my
machines.
------------------------------------------------------------------------
[2010-07-13 01:10:58] brunog at micro-examples dot com
maybe, but 0.0: is not a correct value at all as an add result, whatever
floating point accuracy is
0.09 + 0.02 gives 0.11 as expected, neither 0.109999999999 nor 0.::
------------------------------------------------------------------------
[2010-07-13 01:04:36] rasmus@php.net
That is the "correct" value according to how computers store floating
point
values. If you want it accurate to 2 decimal places, round() it to 2
decimal
places. Read the big red warning box here:
http://php.net/manual/en/language.types.float.php
------------------------------------------------------------------------
[2010-07-13 00:58:02] brunog at micro-examples dot com
thank you for the quick reply
adding ini_set('precision',16); does not give correct result value :
0.09999999999999999
is it an echo() bug ?
0.0: is lexicographically before 0.1
0.09 + 0.01 = 0.0: is correct ascii saying
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/bug.php?id=52324
--
Edit this bug report at http://bugs.php.net/bug.php?id=52324&edit=1
Thread (9 messages)