Edit report at http://bugs.php.net/bug.php?id=52324&edit=1
ID: 52324 Updated by: ras...@php.net Reported by: brunog at micro-examples dot com Summary: bad result when adding two floats Status: Bogus Type: Bug Package: *General Issues Operating System: ubuntu PHP Version: 5.2.14RC2 New Comment: 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. Previous Comments: ------------------------------------------------------------------------ [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] ras...@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 ------------------------------------------------------------------------ [2010-07-13 00:39:21] ras...@php.net prints 0.1 for me. You are probably hitting a floating point limitation combined with a precision setting problem in your environment. Try adding ini_set('precision',16); to the top of your script and you will see. ------------------------------------------------------------------------ [2010-07-13 00:35:04] brunog at micro-examples dot com Description: ------------ PHP Version => 5.2.4-2ubuntu5.10 can you please consider this short code ? Test script: --------------- <?php $f1 = 0.09 ; $f2 = 0.01 ; $tot = $f1 + $f2 ; echo("$tot\n") ; ?> Expected result: ---------------- 0.1 Actual result: -------------- 0.0: ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52324&edit=1