ID: 15164 Updated by: hholzgra Reported By: [EMAIL PROTECTED] Status: Bogus Bug Type: Math related Operating System: linux 2.2.19 PHP Version: 4.1.1 New Comment:
lets call it what it is: an inevitable rounding error that occurs when converting floating point values from internal binary to human readable decimal format use integers and count cents instead of dolars or use http://php.net/number_format for output as already suggested by the way: the result is 56.999999..., not 57.999999..., so you are off by 0.000.....1 not 0.99999..... which is not so bad after all Previous Comments: ------------------------------------------------------------------------ [2002-01-22 11:02:04] [EMAIL PROTECTED] what type should i do for currencies, so? ok. let's don't call it a bug... let's call it for example a little magic of floats. but don't u think u could correct it? ------------------------------------------------------------------------ [2002-01-22 10:29:10] [EMAIL PROTECTED] floats are not supposed to be exact (per definition). do not use them on currencies. calculate cents ant use (agein) number_format() to display them prooperly. No bug in PHP, bogus. ------------------------------------------------------------------------ [2002-01-22 09:17:32] [EMAIL PROTECTED] my previous bug report was 15162. i wrote about (int) cast there. another bug may be a reason of that. i do: (267.57 - 267) * 100 and i get: 57.999999999999 (i expected 57) [may be i work too much...] consider this: <? $price = 267.57; $price_dolars = floor($price); echo "number of cents is: " . ($price - $price_dolars)*100 . "<BR>"; ?> ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=15164&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]