Mailinglisten-Archive |
Am 21.12.2006 um 22:06 schrieb Sascha Grossenbacher: > Hendrik Frank wrote: >> Auch, wenn ich jetzt bestimmt nerve (sorry), aber der Doku Auszug >> sagt doch '.' und soweit ich weiß ist es im Computer üblich ein >> deutsches Dezimalstellenkomma durch einen Punkt zu ersetzen. Und in >> meiner Variable aus der XML Datei steht ein Punkt. >> >> Bin jetzt irgendwie verwirrt. >> >> Hendrik >> > Nur eine Vermutung: > PHP bestimmt das Trennzeichen anhand nach der eingestellten Sprache > (locale). Ich bin Schweizer.. > > var_dump(rechner('5.99', '1.55', 1, 1)) -> float(9.2845) > var_dump(rechner(5.99, 1.55, 1, 1)) -> float(9.2845) > > Jedoch: > var_dump(rechner('5,99', '1,55', 1, 1)) -> float(5) > > Gruss Sascha Ich hab "5.99" als String im XML wenn ich das multiplizieren will, wird es zu (int) 5. also sage ich floatval("5.99"), dann wird korrekt multipliziert. Das Ergebnis ist ein float(194.9745). Das schreibe ich nun wieder ins XML. Hier wird aber jetzt automatisch 194,9745 geschrieben statt 194.9745! Im XML ist es also wieder ein string (klar), aber das Dezimalzeichen wurde geändert, was zu folge hat, dass ich beim nächsten mal rechnen mit diesem wert (aus dem xml) probleme bekomme: ein einfaches floatval("194,9745") gibt nämlich nicht float(194.9745) sondern float(194), was die nächste rechnung versaut. ich muss also ein str_replace(",", ".", "194,9745") machen um einen float zu bekommen. Quellcode steht unten nochmal komplett. Kopfzerbrechen gratis... Falls jemand meinen php-code will, den würde ich auch gratis verschicken (ist aber unordentlich mit 100 var_dumps ;-) ) Hendrik
php::bar PHP Wiki - Listenarchive