Probleme beim Rechnen in PHP

Hallo zusammen,

ich hab folgendes Prolem
ich lese aus einer csv.-Datei Daten ein - u. a. den Preis
den geb ich aus in $zwpreis data[2]

der Preis is 19,99

wenn ich nun mehrere selbe Artikel habe soll er mir das zusammenrechnen
was er auch macht

$zsumme = $zwpreis*$zwanz
echo $zsumme
nur gibt er mir hier 38,00 Euro aus
anstatt - 39,98
(geht auch mit number_format($summe,2,".",",") nicht)
Also er addiert die Nachkommstellen nicht mit
Das find ich seltsam

Hat jemand ne Idee?

Danke und Gruß
Manuel
 
Das liegt am automatischen Typecasting von PHP. Jede andere Programmiersprache würd dir eine errormessage geben ,) PHP kennt das , als dezimaltrennzeichen an. Also mach am einfachsten einen strreplace von , auf . und rechne sie dann wie gewohnt zusammen.

strings mit . kann PHP in floats einfach umrechnen. Mit , nicht.


PS: warum nur die nachkommastellen weg sind sieht man wenn man '5basjkdhasdkjas' mal 2 Rechnen lässt. PHP nimmt von vorne alle zahlen bis er zum ersten unparsebarem zeichen kommt und konvertiert diese in den zahlenwert.
 
Ok - es sind aba keine absuluten Zahlen sondern Variable - also $zwsumme
ginge es dann so?

<?
echo str_replace($zwsumme*zwsumme',','.',) * 2;
?>

Ich habs momentan ned da - deshalb frag ich bloed - bevor ichs testen koennt

Danke und Gruß Manuel
 
Wie oben bereits versucht zu erklären, PHP kann damit nicht rechnen wenn kommas darin enthalten sind. Also CSV in zeilen und Felder aufteilen. Und DANN bevor du mit dem wert aus der CSV etwas macht musst du den String umformatieren das PHP damit weiterrechnen kann.
 
Zurück