Überlauf bei 8 * 4096

09/06/2008 - 08:20 von Elzer Helmut | Report spam
hallo ng,

bei der multiplikation in VB 6

? 8 * 4096

LonintVar = 8 * 4096


wird der Fehler Überlauf generiert

wird das Ergebnis direkt zugewiesen dann gehts

woran liegts

vg
Helmut
 

Lesen sie die antworten

#1 Christian Zimmermann
09/06/2008 - 08:41 | Warnen spam
Hallo Elzer,

Elzer Helmut schrieb:

bei der multiplikation in VB 6

? 8 * 4096

LonintVar = 8 * 4096


wird der Fehler Überlauf generiert



VB versucht hier das Ergebnis in eine Variable des Typs Integer zu
speichern, da sowohl 8 als auch 4096 in ein Integer passen. Wenn
wenigstens einer der beiden Multiplikatoren einen größeren Typ, z. B.
Long hat, geht's. Und das kann man durch einen expliziten Typecast
erzwingen:

LonintVar = CLng(8) * 4096

wird das Ergebnis direkt zugewiesen dann gehts



hierbei erkennt VB, dass die einzelne Zahl nicht mehr in einen Integer
passt und wàhlt den nàchst größeren nàmlich Long.

Gruß

Christian

Ähnliche fragen