php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #43453 wrong result if the decimal is not a dot
Submitted: 2007-11-29 16:19 UTC Modified: 2007-11-29 18:07 UTC
From: bammo_merdini at hotmail dot com Assigned:
Status: Not a bug Package: *Math Functions
PHP Version: 5.2.5 OS: Windows XP Pro
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: bammo_merdini at hotmail dot com
New email:
PHP Version: OS:

 

 [2007-11-29 16:19 UTC] bammo_merdini at hotmail dot com
Description:
------------
If I use number_format() with "." as decimal point and then round it with 1 decimal, it'll work fine, but not if the decimal point is ",".

I'm using WAMP5 and haven't done any changes at all to php.ini.

Reproduce code:
---------------
<?php

$number = number_format(1000000/1024, 2, ".", "");
echo "A: ".round($number, 2);


$number = number_format(1000000/1024, 2, ",", "");
echo "B: ".round($number, 2);

?>

Expected result:
----------------
A: 976.56

B: 976,56

Actual result:
--------------
A: 976.56

B: 976

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-11-29 18:07 UTC] felipe@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

With comma the value isn't treat as float. Then, when it is converted, the part after ',' is removed. See:

$number = number_format(1000000/1024, 2, ",", "");
var_dump($number); // string(6) "976,56"
var_dump((float) $number); // float(976)
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 11:01:30 2024 UTC