ID: 24591
User updated by: arnarb at oddi dot is
Reported By: arnarb at oddi dot is
Status: Open
Bug Type: Scripting Engine problem
Operating System: Linux 2.4.18
-PHP Version: 4.3.2
+PHP Version: 4.3.3RC1
New Comment:

Tried upgrading to 4.3.3RC1, still the same. Therefore bumping the
version tag on this report.


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

[2003-07-10 10:52:19] arnarb at oddi dot is

Description:
------------
When strings containing numbers in the locale format, and the locale
uses , as the decimal seperator, converting the string to a float cuts
off at the , and returns the integer part.

This was addressed in bugs #17105, #17815 and others. Those reports
were closed and the problem was claimed to be fixed in CVS as of
November 2002 by iliaa and sniper.

This bug is however still present in 4.3.2, as the reproduce code
demonstrates.

A quick look indicated that libc's strtod was being used for the
conversion, I verified that it is working on my platform.

Reproduce code:
---------------
<?php
printf("%.3f\n", 3.233);
print sprintf("%.3f", 3.233)+1;
print "\n";

setlocale(LC_ALL, "is_IS");

printf("%.3f\n", 3.233);
print sprintf("%.3f", 3.233)+1;
print "\n";
?>

Expected result:
----------------
3.233
4.233
3,233
4,233

Actual result:
--------------
3.233
4.233
3,233
4


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


--
Edit this bug report at [url]http://bugs.php.net/?id=24591&edit=1[/url]