Antwort auf: Dezimalzahlen addieren

Startseite Foren Deutsches LiveCode-Forum Dezimalzahlen addieren Antwort auf: Dezimalzahlen addieren

#5721
Klaus Major
Administrator

    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