Hallo,
ich habe einen Code, der mir Kopfzerbrechen bereitet.
Dim Erg As Long
Erg = 3 + 2280 * 16
MsgBox Erg
Dieser Code erzeugt einen Überlauf in der zweiten Zeile, den ich nicht verstehe. Als Long sollte die Variable groß genug sein. Ergebnis wäre ja hier nur 36.480.
Wo ist mein (Denk)Fehler?
Gruß Tobi@s
Erg ist zwar Long. Die Berechnung erfolgt aber, bevor das Ergebnis einer Long-Variablen zugewiesen wird - im defaultmäßigen Datenformat. Und damit geht sie schief.
und wie müsste ich es jetzt richtig machen?
Moin,
der Code ist weitgehend sinnfrei. Wenn als Long deklarierte Variablen verrechnet werden, läuft alles wie geplant.
Direktoperanden sind nicht Long, sondern Integer, deshalb scheppert’s. Wer dem abhelfen möchte, muss
Erg = CLng(3) + CLng(2280) * CLng(16)
schreiben.
Gruß
Ralf
2 „Gefällt mir“
Danke.
Ja, der Code ist (erstmal) sinnfrei. Ich wollte hier nur nicht den kompletten Code schreiben, der fehlerfrei läuft. Es war nur das „Teilstück“.
Aber jetzt habe ich tatsächlich verstanden, wo mein Fehler war.
Gruß Tobi@s