ID:               31366
 Updated by:       [EMAIL PROTECTED]
 Reported By:      info at smartlogic dot nl
-Status:           Open
+Status:           Verified
 Bug Type:         Math related
-Operating System: Linux
+Operating System: *
-PHP Version:      4.3.10
+PHP Version:      4CVS, 5CVS (2005-01-01)


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

[2004-12-31 11:41:46] info at smartlogic dot nl

Description:
------------
After setting the setlocale the decimal point disappears.

This is the same bug as "Bug #14235: serialize and setlocale:
inconsistent behavior" but it still appears in PHP 4.3.10 while the
possible solution indicates:

"This bug has already been fixed in the latest released version of
PHP, which you can download at http://www.php.net/downloads.php

this was fixed in 4.1.x with the switch to a non-sprintf-based
serialize implementation."

Reproduce code:
---------------
#code without setlocale
echo "* WITHOUT setlocale\n\n";
bug_test();

#code with setlocale
echo "* WITH setlocale\n\n";
setlocale (LC_ALL, 'nl_NL');
bug_test();

function bug_test()
{

         $bill_lines[0]["price"]=42.02;

         echo "Original Input:
".$bill_lines[0]["price"]."\n\nArray:\n\n";

         print_r(array_values($bill_lines));

         $encoded=serialize($bill_lines);
         echo "\n\nSerialized array: $encoded \n\n";
         $decoded=unserialize($encoded);

         echo "Ouput after unserialize: ".$decoded[0]["price"]."\n\n";
}


Expected result:
----------------
The output after the setlocale and the unserialize is 42 instead of
42,02 or 42.02

Actual result:
--------------
* WITHOUT setlocal

Original Input: 42.02

Array:

Array
(
    [0] => Array
        (
            [price] => 42.02
        )

)


Serialized array:
a:1:{i:0;a:1:{s:5:"price";d:42.02000000000000312638803734444081783294677734375;}}


Ouput after unserialize: 42.02

* WITH setlocale

Original Input: 42,02

Array:

Array
(
    [0] => Array
        (
            [price] => 42,02
        )

)


Serialized array:
a:1:{i:0;a:1:{s:5:"price";d:42.02000000000000312638803734444081783294677734375;}}


Ouput after unserialize: 42


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


-- 
Edit this bug report at http://bugs.php.net/?id=31366&edit=1

Reply via email to