php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #40802 number_format does not fill rounded number with zeros
Submitted: 2007-03-14 10:07 UTC Modified: 2007-03-14 10:34 UTC
From: taco at procurios dot nl Assigned:
Status: Not a bug Package: *Math Functions
PHP Version: 5.2.1 OS: Linux 2.6.17-11-386
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: taco at procurios dot nl
New email:
PHP Version: OS:

 

 [2007-03-14 10:07 UTC] taco at procurios dot nl
Description:
------------
Since there is no way to tell number_format to use a specified decimal separator and thousands separator without rounding the number I wanted to set the amount of decimals bigger than the given amount of decimals to strip the trailing zeros afterwards.

However, the string number_format returned did not only add zeros to the given number:

$ php -v
PHP 5.2.1-0.dotdeb.1 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb  9 2007 04:46:32) 
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
$ php -r "echo number_format(2.333333, 60, ',', '.');"
2,333333000000000101437080957111902534961700439453125000000000

Reproduce code:
---------------
echo number_format(2.333333, 60, ',', '.');

Expected result:
----------------
2,333333000000000000000000000000000000000000000000000000000000

Actual result:
--------------
2,333333000000000101437080957111902534961700439453125000000000

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-03-14 10:09 UTC] 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.


 [2007-03-14 10:32 UTC] taco at procurios dot nl
I agree that this is normal behaviour for floats, but the same bug appears when you would pass a string. Does number_format cast strings to floats internally?
 [2007-03-14 10:34 UTC] taco at procurios dot nl
Nevermind. Forgot to look at the manual, the number argument should be a float...
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Fri May 09 11:01:28 2025 UTC