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:

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]


Previous Comments:
------------------------------------------------------------------------

[2004-04-30 15:26:29] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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?

------------------------------------------------------------------------

[2004-04-30 03:04:39] [EMAIL PROTECTED]

Oops. Disregard that last comment. What I meant to write 
was:

This is a bug, not a feature. Why would you want to 
print a number without a decimal point? It wouldn't be 
the same number. A number without a thousands separator, 
however, is still understandable.

------------------------------------------------------------------------

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

Reply via email to