Ich habe das Problem, dass mir das Script beim rechnen mit Kommawerten die Ausgabe nicht korrekt berechnet. Das Problem ist, dass er statt 20,60 einfach nur 40 ausgibt beim folgenden Beispiel.
Die Ausgabe von dem Testscript ist diese:
Das System hier auf dem ich gerade Arbeite ist ein Windows XP, eingesetzt werden soll das eigentliche Script auf Linux wie auch auf Windows servern.
Gibt es einen zuverlässigen Weg die Werte korrekt zu errechnen systemunabhängig, so das ich im obrigen Beispiel wirklich 40,60 zurück bekomme? Danke!
PHP-Code:
<?
if (false !== setlocale(LC_ALL, 'German_Germany.1252', 'de_DE@euro', 'de_DE', 'de', 'ge')) {
$locale_info = localeconv();
echo '<pre>';
print_r($locale_info);
echo '</pre>';
}
$test = "20,30" * 2;
echo $test;
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is <pre>'$loc_de'</pre>";
?>
EDIT:
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
(
)
[mon_grouping] => Array
(
[0] => 3
)
)
40Preferred locale for german on this system is
'German_Germany.1252'
Das System hier auf dem ich gerade Arbeite ist ein Windows XP, eingesetzt werden soll das eigentliche Script auf Linux wie auch auf Windows servern.
Gibt es einen zuverlässigen Weg die Werte korrekt zu errechnen systemunabhängig, so das ich im obrigen Beispiel wirklich 40,60 zurück bekomme? Danke!
Kommentar