#36008 [Com]: incorrect round() & number_format() result
| From: | me at nospam dot com | Date: | Fri, 16 Mar 2007 15:36:15 +0000 |
| Subject: | #36008 [Com]: incorrect round() & number_format() result | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-110436@lists.php.net to get a copy of this message | ||
ID: 36008
Comment by: me at nospam dot com
Reported By: adi at rogers dot com
Status: No Feedback
Bug Type: Math related
Operating System: win32 only
PHP Version: 5CVS-2006-06-14
New Comment:
I don't have a simpler test case, but in doing more testing, I found
that the rounding apparently just doesn't work. When you print out a
number that was rounded, it will appear correctly, but when you try to
do math functions with other similar numbers (ie 6.08 - 6.08), I will
get a remainder of like 2.039283e-16. However, setting the type to each
variable as a string made it work correctly.
Previous Comments:
------------------------------------------------------------------------
[2007-01-15 01:00:00] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2007-01-09 02:56:14] terrychangsharp at gmail dot com
I tested the code on PC + FreeBSD 6.1 + Apache 2.2.3 + PHP 5.2.0 and
get the same results. Actually, the seemingly coincident numbers $num
and $num_same_thing are in fact not the same thing: $num -
$num_same_thing yields -1.7763568394003E-015, not zero, so $num is
smaller than 14.375 and round($num) is 14.37, not 14.38. Thus this
"bug" is more like a floating point error thing, not a real bug.
------------------------------------------------------------------------
[2007-01-07 04:07:29] iliaa@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
[2006-10-31 00:39:37] adi at rogers dot com
Aww well it's too late for me to bug it for Windows Vista as we've
entered Release Candidate 2 :( I'll test this again on IIS7 with the
final version of Vista...
------------------------------------------------------------------------
[2006-10-30 13:30:58] dave at koales dot co dot uk
I think this is a Windows vs others thing. I have the same rounding
error using PHP 5.0.5 on Windows XP SP2.
The same problem does not exist on my webhost, who use PHP 4.3.9 and
Redhat Linux (need any more detail).
The code I used was:
echo "Correct VAT = " . round( 0.525, 2 ) . "\r\n";
echo "Wrong VAT = " . round( 3 * ( 17.5 / 100.0 ), 2 ) . "\r\n";
Outputs 0.53 for each on webhost (under Linux) and 0.52 for the second
test under Windows (0.53 for the first test).
I've also had very bizarre rounding errors with MySQL. The rounding
error came and went depending on how the calculation was constructed!
------------------------------------------------------------------------
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/36008
--
Edit this bug report at http://bugs.php.net/?id=36008&edit=1