PHP 4.0 Bug #9411 Updated: Arithmetic error
| From: | lyric@php.net | Date: | Thu, 22 Feb 2001 21:07:38 +0000 |
| Subject: | PHP 4.0 Bug #9411 Updated: Arithmetic error | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-47287@lists.php.net to get a copy of this message | ||
ID: 9411
Updated by: lyric
Reported By: robburne@hotmail.com
Old-Status: Closed
Status: Bogus
Old-Bug Type: *Regular Expressions
Bug Type: Math related
Assigned To:
Comments:
This is nothing to do with PHP, its just part of the way computers store floating-point numbers. It
stores an aproximation of 0.32, as close as it can get, but when you start multiplying it, the
little difference between 0.32 and what it stored starts to get magnified.
BTW, 5.5511151231258E-17 is 0.000000000000000055511151231258 which is *really* closed to 0.
If you want to output formatted numbers, you should either round it, or use printf()
http://www.php.net/manual/en/function.printf.php
Previous Comments:
---------------------------------------------------------------------------
[2001-02-22 16:05:47] derick@php.net
This is normal floating point math behavior
---------------------------------------------------------------------------
[2001-02-22 15:45:55] robburne@hotmail.com
Hi I am not sure if I have found a bug - what do you think.......?
Consider this:
$var1 = -0.32 + (0.1*3.2)
This should give var1 the value 0, instead it gives
5.5511151231258E-17
Interestingly if you increase -0.33 and 3.3 respectively it gives the correct answer. Werid!
Rob Burne
robburne@hotmail.com
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=9411&edit=2