Php rundet automatisch ab

Hallo!

Ich möchte aus einer MySQL-Datenbank Werte mit bis zu 2 Kommastellen auslesen und diese addieren. Klingt einfach - wäre es im Prinzip ja auch.

Ich habe eine Klasse angelegt, in der alle während meines (Bestell-)Vorgangs verwendeten Variablen gespeichert und gefüllt werden (da da einige Formulare verschachtelt sind). Die Variable lege ich darin wie folgt an:

var $price_month;

und initialisiere sie im Konstruktor so:

$this->price_month = 0.00;
settype($this->price_month, „float“);

Dann mache ich eine Datenbankabfrage, bei der ich mir aufgrund der ID den Preis auslesen lasse.

$res->fetchInto($row);

Mit echo($row) erhalte ich den Wert 2.77, beim Dereferenzieren der Variable price_month über $Klassenvariable->price_month erhalte ich aber 0 (anstatt 0.00). Als Ergebnis dieser Addition erhalte ich dann 2.

Kann mir irgend jemand erklären, warum?

Danke!

melvont

Hallo!

Die Antwort liegt in der Frage :smile: Ich hab jetzt bemerkt, wo der Fehler lag. Sollte es einmal jemandem ähnlich gehen: in meiner Datenbank wurden die Werte mit einem Beistrich als Koma eingetragen.

Das Problem lag also nicht bei der Klasse mit 0.0, sondern daran, dass php die Stellen nach dem Beistrich ignoriert hat. Ich hab die Datensätze jetzt auf Zahlen mit Punkt als Koma geändert und es funktioniert einwandfrei.

Liebe Grüße,
melvont