Startseite › Foren › Deutsches LiveCode-Forum › Dezimalzahlen addieren › Antwort auf: Dezimalzahlen addieren
Hallo Ja,
willkommen im Forum!
DasProblem ist, daß LC ENGLISCH ist und somit nur den PUNKT als Dezimaltrenner versteht! :-/
Deutsch: 2,36
Englisch: 2.36
Ich habe mir dafür zwei Funktionen geschrieben, die eine rufe ich auf
1. BEVOR ich mit LC Berechnungen anstelle, die andere
2. BEVOR ich die Zahlen wieder zur Darstellung in ein Feld packe
Die Funktionen ersetzen nur den Punkt mit einem Komma bzw. umgekehrt in einer mitgelieferten Zahl.
Diese zwei Funktionen kopierst du in Dein Stackskript, so können sie von überall benutzt werden!
# Werte zur richtigen Berechnung als Punktwerte
# da nur mit Punkt (english) korrekt berechnet wird
function ohne_komma tZahl
replace "." with "" in tZahl
replace "," with "." in tZahl
return tZahl
end ohne_komma
function mit_komma tZahl
replace "." with "," in tZahl
return tZahl
end mit_komma
Und so benutzt Du sie:
...
put fld "menge" into tMenge
## 2
put fld "einzelpreis" into tEP
## 2,36
## Menge* Einzelpreis = Gesamtpreis
## Nun zuerst den Preis mit PUNKT versehen
put ohne_komma(tEP) into tEP
## -> 2.36!
## Nun können wir ohne ERROR rechnen:
put tMenge * tEP into tGesamtpreis
## Nun den wieder MIT Komma versehen, weil wir ihn im Feld anzeigen wollen:
put mit_komma(tGesamtpreis) into fld "Gesamtpreis"
...
Ich hoffe, das kleine Beispiel ist selbsterklärend, sonst bitte nachfragen!
Liebe Grüße
Klaus