From: nathan at pngwyn dot com Operating system: Linux PHP version: 5.1.2 PHP Bug Type: *Math Functions Bug description: Rounding error
Description: ------------ Rounding error on all numbers between 2048 and 8191 ending with .575 - When rounding to two decimal places. For Example, instead of rounding 2048.575 up to 2048.58 it is rounding down to 2048.57 See attached Code. Example URL: http://www.pngwyn.com/test.php * Note: Example URL is running 5.05 - But this has been tested on 5.1.2 as well. Reproduce code: --------------- <?php $start = 2040.575; $for = '6500'; $max = $for + $start; print("<font face=verdana size=2><a href=\"http://www.pngwyn.com/phpinfo.php\">PHP Info for this Server</a><br><br>"); for($i = $start; $i <= $max; $i++) { $round = round($i, 2); print("Original Number: <b>$i</b> --- Rounded Number: <b>$round</b> <br>"); } ?> Expected result: ---------------- Original Number: 2046.575 --- Rounded Number: 2046.58 Original Number: 2047.575 --- Rounded Number: 2047.58 Original Number: 2048.575 --- Rounded Number: 2048.58 Original Number: 2049.575 --- Rounded Number: 2049.58 [ 2050.575 - 8189.575 ... ] Original Number: 8190.575 --- Rounded Number: 8190.58 Original Number: 8191.575 --- Rounded Number: 8191.58 Original Number: 8192.575 --- Rounded Number: 8192.58 Original Number: 8193.575 --- Rounded Number: 8193.58 Actual result: -------------- Original Number: 2046.575 --- Rounded Number: 2046.58 Original Number: 2047.575 --- Rounded Number: 2047.58 Original Number: 2048.575 --- Rounded Number: 2048.57 Original Number: 2049.575 --- Rounded Number: 2049.57 [ 2050.575 - 8189.575 ... ] Original Number: 8190.575 --- Rounded Number: 8190.57 Original Number: 8191.575 --- Rounded Number: 8191.57 Original Number: 8192.575 --- Rounded Number: 8192.58 Original Number: 8193.575 --- Rounded Number: 8193.58 -- Edit bug report at http://bugs.php.net/?id=35986&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=35986&r=trysnapshot44 Try a CVS snapshot (PHP 5.1): http://bugs.php.net/fix.php?id=35986&r=trysnapshot51 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=35986&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=35986&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=35986&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=35986&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=35986&r=needscript Try newer version: http://bugs.php.net/fix.php?id=35986&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=35986&r=support Expected behavior: http://bugs.php.net/fix.php?id=35986&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=35986&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=35986&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=35986&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=35986&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=35986&r=dst IIS Stability: http://bugs.php.net/fix.php?id=35986&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=35986&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=35986&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=35986&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=35986&r=mysqlcfg