PHP 4.0 Bug #10131 Updated: Round error

From: 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

« previous php.dev (#50662) next »