#34427 [Bgs]: round function bug

From: Date: Thu, 08 Sep 2005 12:46:01 +0000
Subject: #34427 [Bgs]: round function bug
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-84726@lists.php.net to get a copy of this message
ID: 34427 User updated by: lukasz at knasiecki dot com Reported By: lukasz at knasiecki dot com Status: Bogus Bug Type: *Math Functions Operating System: Windows XP PHP Version: 5.0.5 New Comment: Still, I am sure this is a bug. No software I use (Excel, Shopping program) produces such results, like PHP echo '<br>'.round(0.155*1, 2); >> gives 0,16 echo '<br>'.round(8.155*1, 2); >> gives 8,15 Previous Comments: ------------------------------------------------------------------------ [2005-09-08 14:32:09] tony2001@php.net Floating point values have a limited precision. Hence a value might not have the same string representation after any processing. That also includes writing a floating point value in your script and directly printing it without any mathematical operations. If you would like to know more about "floats" and what IEEE 754 is read this: http://docs.sun.com/source/806-3568/ncg_goldberg.html Thank you for your interest in PHP. ------------------------------------------------------------------------ [2005-09-08 14:24:56] lukasz at knasiecki dot com Description: ------------ Round function works with errors. Reproduce code: --------------- echo '<br>'.round(8.055, 2); echo '<br>'.round(8.155, 2); echo '<br>'.round(8.255, 2); Expected result: ---------------- echo '<br>'.round(8.055, 2); //gives 8.06 echo '<br>'.round(8.155, 2); //gives 8.16 echo '<br>'.round(8.255, 2); //gives 8.26 Actual result: -------------- echo '<br>'.round(8.055, 2); //gives 8.06 echo '<br>'.round(8.155, 2); //gives 8.15 !!! echo '<br>'.round(8.255, 2); //gives 8.26 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=34427&edit=1

« previous php.bugs (#84726) next »