#42463 [NEW]: implicit sprintf round uses banker's algorithm.

From: Date: Tue, 28 Aug 2007 17:17:25 +0000
Subject: #42463 [NEW]: implicit sprintf round uses banker's algorithm.
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-116775@lists.php.net to get a copy of this message
From: dan dot ostrowski at gmail dot com Operating system: Linux PHP version: 5.2.3 PHP Bug Type: *General Issues Bug description: implicit sprintf round uses banker's algorithm. Description: ------------ When rounding (implicitly) with sprintf, halfway values are rounded using a "banker's" algorithm instead of performing the way a call to round() would. This seems inconsistent and counterintuitive for no particular reason. Thanks! Reproduce code: --------------- print sprintf("%2.2f", 0.015)."<br/>"; print sprintf("%2.2f", 0.025)."<br/>"; print sprintf("%2.2f", 0.035)."<br/>"; print sprintf("%2.2f", 0.045)."<br/>"; print "<br/>"; print round(0.015, 2)."<br/>"; print round(0.025, 2)."<br/>"; print round(0.035, 2)."<br/>"; print round(0.045, 2)."<br/>"; Expected result: ---------------- 0.02 0.03 0.04 0.05 0.02 0.03 0.04 0.05 Actual result: -------------- 0.01 0.03 0.04 0.04 0.02 0.03 0.04 0.05 -- Edit bug report at http://bugs.php.net/?id=42463&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=42463&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=42463&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=42463&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=42463&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=42463&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=42463&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=42463&r=needscript Try newer version: http://bugs.php.net/fix.php?id=42463&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=42463&r=support Expected behavior: http://bugs.php.net/fix.php?id=42463&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=42463&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=42463&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=42463&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=42463&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=42463&r=dst IIS Stability: http://bugs.php.net/fix.php?id=42463&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=42463&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=42463&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=42463&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=42463&r=mysqlcfg

« previous php.bugs (#116775) next »