ID: 31366 Updated by: [EMAIL PROTECTED] Reported By: info at smartlogic dot nl -Status: Verified +Status: Assigned Bug Type: Math related Operating System: * PHP Version: 4CVS, 5CVS (2005-01-01) -Assigned To: +Assigned To: derick
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