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:

strangely it works fine on an older php version 

PHP Version => 5.1.6

gives 0.1 as expected


Previous Comments:
------------------------------------------------------------------------
[2010-07-13 01:16:39] ras...@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] 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.

------------------------------------------------------------------------


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

Reply via email to