ID: 39873
User updated by: rob4you at vodafone dot it
Reported By: rob4you at vodafone dot it
-Status: Feedback
+Status: Open
Bug Type: Strings related
Operating System: Windows XP
PHP Version: 5.2.0
New Comment:
> That does not mean it was supposed to work the way you
> expect.
> it should be clarified in the docs.
Yes, if this is the way it works, it should be clarified in docs.
> please try the NEXT snapshot, I'm unableto reproduce it.
I've tried the last available snapshot.
Here is the problem:
Reproduce code:
---------------
<?php
$ita=array("ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1");
setlocale(LC_ALL,$ita);
$num=0+"1234.56";
$formatted_num=number_format($num,2);
echo $formatted_num;
?>
Expected result:
----------------
1,234.56
Actual result:
--------------
1,234,,56.00
it sounds quite strange...:-)
Previous Comments:
------------------------------------------------------------------------
[2006-12-19 15:31:21] [EMAIL PROTECTED]
>I don't think so.
>If I see, in localeconv():
>I expect that the number formatted with:
That does not mean it was supposed to work the way you expect.
>But in this case the locale aware is not respected: it's
> respected only for [decimal_point] and NOT for
> [thousands_sep].
Right, that's how it is supposed to work and it should be clarified in
the docs.
>now it incorrectly produces:
Again, please try the NEXT snapshot, I'm unableto reproduce it.
------------------------------------------------------------------------
[2006-12-19 15:21:42] rob4you at vodafone dot it
> Yes, it was never supposed to work this way.
> This is exactly the reason why wer have number_format()
> function.
I don't think so.
If I see, in localeconv():
[decimal_point] => ,
[thousands_sep] => .
I expect that the number formatted with:
printf("%f",$num)
is 1.234,56 and NOT 1234,56
As you can see the [decimal_point] is ",", according with localeconv(),
but the [thousands_sep] doesn't appear here, disaccording with
localeconv().
The manual states about the %f:
"f - the argument is treated as a float, and presented as a
floating-point number (locale aware)."
But in this case the locale aware is not respected: it's respected only
for [decimal_point] and NOT for [thousands_sep].
>> On the contrary, it's going worse:
> I can't reproduce this.
> Please try the next snapshot.
For:
printf("%f",$num)
before it produced (with loca setted on "it"):
"1234,56"
now it incorrectly produces:
"1234.56"
that is it forgets both the [thousands_sep] AND the [decimal_point].
------------------------------------------------------------------------
[2006-12-19 15:07:36] [EMAIL PROTECTED]
>But the problem isn't resolved.
Yes, it was never supposed to work this way.
This is exactly the reason why wer have number_format() function.
>On the contrary, it's going worse:
I can't reproduce this.
Please try the next snapshot.
------------------------------------------------------------------------
[2006-12-18 19:43:24] rob4you at vodafone dot it
I've tried the link for Windows you suggested:
http://snaps.php.net/win32/php5.2-win32-latest.zip.
Now i've this version of php: "PHP Version 5.2.1RC2-dev".
But the problem isn't resolved. On the contrary, it's going worse: now
it's ignored also the decimal separator [decimal_point] with %f.
The problem persists also with other os.
With the same script of the previous message, here it is the output
produced:
Actual result:
--------------
Italian_Italy.1252
1234,56
Not dependant in local settings: 1234.56000
Dependant on local settings: 1234.560000
Array
(
[decimal_point] => ,
[thousands_sep] => .
...etc...
)
The expected result is obviously the same as the previous message:
Expected result:
----------------
Italian_Italy.1252
1.234,56
Not dependant in local settings: 1234.560000
Dependant on local settings: 1.234,560000
Array
(
[decimal_point] => ,
[thousands_sep] => .
...etc...
)
------------------------------------------------------------------------
[2006-12-18 18:52:47] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
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/39873
--
Edit this bug report at http://bugs.php.net/?id=39873&edit=1