PHP 4.0 Bug #10131 Updated: Round error
| From: | derick@php.net | Date: | Tue, 03 Apr 2001 08:15:51 +0000 |
| Subject: | PHP 4.0 Bug #10131 Updated: Round error | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-50662@lists.php.net to get a copy of this message | ||
ID: 10131
Updated by: derick
Reported By: woprog@hotmail.com
Old-Status: Open
Status: Closed
Bug Type: Math related
Assigned To:
Comments:
This is not a bug in PHP. it's how floating point math works, and there is nothing that we can
do to change it.
The problem is that these floating point number are stored as a as good as possible representation
of the numbers you use, but it's not possible to get them stored exactly as you want them to
be.
Previous Comments:
---------------------------------------------------------------------------
[2001-04-03 03:46:38] woprog@hotmail.com
Execute this script:
<?
$a = 250.02;
$b = 210.10;
$c = 39.92;
echo "a = $a<br>n";
echo "b = $b<br>n";
echo "c = $c<br>n";
echo "(b+c)-a = " . (($b+$c)-$a) . "<br>n";
?>
It SHOULD echo:
a = 250.02
b = 210.1
c = 39.92
(b+c)-a = 0
But it echoes on my machine:
a = 250.02
b = 210.1
c = 39.92
(b+c)-a = -2.8421709430404E-14
When you change the values, for example like this:
<?
$a = 250.022;
$b = 210.101;
$c = 39.921;
?>
it echoes the correct values... if against all odds I am doing something wrong, please tell me....!
Marc, a very happy php programmer!
P.S. I compiled PHP with this command line:
'./configure' '--with-mysql' '--with-pgsql' '--with-esoob'
'--with-magic-quotes' '--with-apxs' '--with-ftp'
'--with-config-file-path=.'
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=10131&edit=2