MudGuard: Multiplikation

Beitrag lesen

Hi,

echo '"'.$datensatz->max.'"';
erzeugt "0.5" (man beachte Punkt nicht Komma, und keine Leerstellen)

Der String wird direkt ausgegeben.

echo '"'.$datensatz->max * 24.'"';
erzeugt "0"

Der String wird, um ihn mit dem Integer multiplizieren zu können, in einen Integer gewandelt.
Welche Locale hast Du eingestellt? Ich hätte hier 24 erwartet - aber vielleicht ist  in der verwendeten Locale der . kein Dezimaltrennzeichen ...
Oder es wird bei String->Integer-Umwandlung beim ersten nicht-Integer-Zeichen abgebrochen ...

echo '"'.($datensatz->max * 24).'"';
erzeugt "0"

Die Klammern dürfen keinen Unterschied zum vorherigen Fall machen.

echo '"'.(0.5 * 24).'"';
erzeugt "12" <- das gewünschte Ergebnis

Der Integer 24 wird für die Multiplikation mit dem Float nach Float gewandelt, dann gerechnet.

Was mache ich denn falsch?

Vermutlich ist der Fehler, daß $datensatz->max ein String ist.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.