Bug #52324 [Bgs]: bad result when adding two floats
| From: | brunog at micro-examples dot com | Date: | Mon, 12 Jul 2010 23:10:59 +0000 |
| Subject: | Bug #52324 [Bgs]: bad result when adding two floats | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-152343@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=52324&edit=1
ID: 52324
User updated by: brunog at micro-examples dot com
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:
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.::
Previous Comments:
------------------------------------------------------------------------
[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
------------------------------------------------------------------------
[2010-07-13 00:39:21] rasmus@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