Hallo,

Dein Beispiel hat mit einer Mehrfachrechnung eigentlich nichts zu tun.

Für die IF ... THEN Anweisung gibt es zwei Schreibweisen.

  • IF Bedingung THEN Anweisung [ELSE andere Anweisung]


oder

  • IF Bedingung THEN

    Anweisung

    [ELSE]

    andere Anweisung

    ENDIF


Du kannst entweder EINE Anweisung direkt hinter dem THEN schreiben allenfalls auch ein ELSE Zweig (aber keine ENDIF)

oder die normale Schreibweise bei der hinter THEN nichts mehr sein darf und die Anweisungen bei zutreffen der Bedingung in den nächsten Zeilen folgen, allenfalls ein alternativer Verzweigungszweig mit ELSE und am Schluss ein ENDIF ebenfalls in einer eigenen Zeile.

Oder kurz gesagt, sofern alles in einer Zeile erledigt werden soll, darf kein ENDIF mehr kommen.


SINGLE auf ein oder zwei Kommastellen Runden:

Für den Ausdruck (PRINT oder LCD) mit der Anweisung FUSING. Schau mal in der Hilfe unter diesem Stichwort nach.
Soll mit einem solchen gerundeten Wert weitergerechnet werden geht das nur wenn man z. B. bei 2 Dezimalstellen so vorgeht:
Code:
Dim S1 as Single
S1 = 123.456789
S1 = S1 * 100
S1 = FIX(S1)
S1 = S1 / 100
Hier wird aber bei einem nachfolgenden Ausdruck kein entsprechend exakt gerundeter Wert erscheinen, da sich viele Dezimalzahlen nicht exakt mit dem binären Fließkommaformat darstellen lassen.
Eine nachfolgende PRINT oder LCD Anweisung wird daher den Wert bringen, dem die binär gespeicherte Zahl wirklich entspricht und den gewünschten Wert am ehesten repräsentiert.

Auch hier gibt es in der BASCOM-Hilfe unter
Bascom language fundamentals / Language Fundamentals beim Absatz:
Decimal and Binary Number Systems
entsprechende Erläuterungen.


Viele Grüße
Josef