#28228 [Com]: number_format function bug

From: Date: Thu, 23 Sep 2004 15:08:48 +0000
Subject: #28228 [Com]: number_format function bug
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-66604@lists.php.net to get a copy of this message
ID: 28228 Comment by: mark at quarella dot co dot uk Reported By: bichinhoverde at spwinternet dot com dot br Status: Closed Bug Type: Unknown/Other Function Operating System: windows and linux PHP Version: 4.3.6 New Comment: To be a bit clearer than my previous comment: number_format(1234.56, 2, '', ',') should result in 1,23456 not 123,456 as it does now. Ideally number_format(1234.56, 2, FALSE, ',') would give 1,234.56 but 1,23456 would be better than the current behaviour. Previous Comments: ------------------------------------------------------------------------ [2004-09-23 17:04:49] mark at quarella dot co dot uk I have just discovered that: number_format(11.99, 2, FALSE, ',') which used to display 11.99 now displays 1,199 I'm not sure whether FALSE ought to be supported as a "use the default" rather than equivalent to the empty string, but surely at worst this should give: 1199 My preference, for what it's worth, is that FALSE should take the default ('.'), but '' should work better than it does? [I only have 4.3.8 to test against but no mention of this is made in the 4.3.9 release notes] ------------------------------------------------------------------------ [2004-04-30 15:26:29] iliaa@php.net This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2004-04-30 09:19:20] derick@php.net It's not a feature, it's a bug of course. ------------------------------------------------------------------------ [2004-04-30 03:34:07] bichinhoverde at spwinternet dot com dot br Just in case someone finds this "feature report", here is a work around: number_format(1234.5678*100,0,'',''); It prints "123457" as I wanted. ------------------------------------------------------------------------ [2004-04-30 03:22:50] bichinhoverde at spwinternet dot com dot br I was expecting the same behavior for the decimal point and the thousands separator. If you write: number_format(1234.5678, 2, 'a', 'b'); It outputs: 1b234a57 Is it understandable? Does it matter? If you specify no thousands separator, it displays the number without it. But the same is not true for the decimal point. These two lines have the same result: number_format(1234.5678, 2, '', ''); number_format(1234.5678, 2, '.', ''); It shouldn't be, IMHO. Now, why would I use fractional numbers without the decial point? Because I must print bank codes that have currency values in them. They use fixed point (2 decimal places) instead of floating point. So, $ 1234,55 will be 123455 in the bank code. Got it? ------------------------------------------------------------------------ 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/28228 -- Edit this bug report at http://bugs.php.net/?id=28228&edit=1

« previous php.bugs (#66604) next »