ID: 32868 Updated by: [EMAIL PROTECTED] Reported By: andy at laut dot de -Status: Closed +Status: Bogus Bug Type: *General Issues Operating System: SuSe Linux 9.2 PHP Version: 4.3.10 New Comment:
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 This is actually the intended behaviours, PHP only uses the "." for as the decimal separators regardless of the locale. Previous Comments: ------------------------------------------------------------------------ [2005-04-28 17:35:29] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2005-04-28 16:59:46] andy at laut dot de Description: ------------ There seems to be a failure in internal number formating. Although my locale is set correctly and localeconf returns the expected information, which says, that decimal_point is the komma, calculations with komma as decimal-separator fail. Versions of PHP <4.3 behave as i expect, but since 4.3 scripts which uses the komma for decimal-separator don't calculate correctly anymore... My Configure-Line: './configure' '--with-apxs=/www/apache-1.3.33/bin/apxs' '--prefix=/www/apache-1.3.33/php-4.3.10' '--with-gd' '--with-zlib' '--with-mysql' '--enable-trans-sid' '--enable-ftp' '--with-mnogosearch=/www/mnogosearch' Reproduce code: --------------- #As anybody can see here, the locale is set correctly setlocale (LC_ALL, '[EMAIL PROTECTED]', 'de_DE', 'de', 'ge'); echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978)); #localeconf returns the expected information $locale_info = localeconv(); print_r($locale_info); #But what the heck, this print doesn't print("1,00+1,99=" . "1,00" + "1,99" . "<br/>\n"); /* If you uncomment this, parse error occurs $x = 2,99; $y = 3,27; print($x+$y); */ Expected result: ---------------- Freitag 22 Dezember 1978 Array ( [decimal_point] => , [thousands_sep] => . [int_curr_symbol] => EUR [currency_symbol] => ¤ [mon_decimal_point] => , [mon_thousands_sep] => . [positive_sign] => [negative_sign] => - [int_frac_digits] => 2 [frac_digits] => 2 [p_cs_precedes] => 0 [p_sep_by_space] => 1 [n_cs_precedes] => 0 [n_sep_by_space] => 1 [p_sign_posn] => 1 [n_sign_posn] => 1 [grouping] => Array ( [0] => 3 [1] => 3 ) [mon_grouping] => Array ( [0] => 3 [1] => 3 ) ) 2,99 6,26 Actual result: -------------- Freitag 22 Dezember 1978 Array ( [decimal_point] => , [thousands_sep] => . [int_curr_symbol] => EUR [currency_symbol] => ¤ [mon_decimal_point] => , [mon_thousands_sep] => . [positive_sign] => [negative_sign] => - [int_frac_digits] => 2 [frac_digits] => 2 [p_cs_precedes] => 0 [p_sep_by_space] => 1 [n_cs_precedes] => 0 [n_sep_by_space] => 1 [p_sign_posn] => 1 [n_sign_posn] => 1 [grouping] => Array ( [0] => 3 [1] => 3 ) [mon_grouping] => Array ( [0] => 3 [1] => 3 ) ) 2 5 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32868&edit=1