Overflow ved udregning

Tags:    visual-basic

Jeg sidder netop og oplever noget lidt underligt, som går ud over min forstand.

Jeg skal i mit program lave en forholdsvis simpel udregning, nemlig følgende:

(782 * 100) / 3179

Dette giver mig dog en Overflow-fejl, hvilket jeg ikke forstår. Programmet bliver lavet med Visual Basic 6. Hvis nogen har en fornuftig forklaring, må de meget gerne melde ud hurtigst muligt. På forhånd tak :)



5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Sådan burde du kunne regne det ud:
Fold kodeboks ind/udKode 

Mvh.
Claus Thomsen

Lille fejl :)
Du kan ikke bruge string når du regner med tal :D

Og grunden til at du får Overflow kingyo er nok at du bruger integer
(f.eks
"dim tal as integer
tal = 782 * 100").
Integer er et 16-bit tal, hvilket betyder at det kun kan indholde tal op til 32767, og da 782 * 100 gir over 32767, for du overflow-fejlen. Brug istedet Long:
Fold kodeboks ind/udKode 

Long er 32-bit og kan der for indholde tal op til 2147483647 :) så brug long...



Indlæg senest redigeret d. 14.05.2007 15:56 af Bruger #11573
Lille fejl :)
Du kan ikke bruge string når du regner med tal :D

Det troede jeg bare man kunne i VB6. (Sidder selv med VB.NET og da er det nemlig muligt :D) Grunden til, at jeg bruger String i stedet for Integer er, som du selv siger, at der er en begrænsning for, hvor stort et tal det kan indeholde. Desuden kan Integer heller ikke indeholde komma-tal, hvilket en String variabel godt kan. :)
Men det er jo som sagt i VB.NET, så det har jo ingen betydning i denne tråd :D

Mvh.
Claus Thomsen



Indlæg senest redigeret d. 14.05.2007 16:49 af Bruger #10377
Funker ikke!



Sådan burde du kunne regne det ud:
Fold kodeboks ind/udKode 

Mvh.
Claus Thomsen



Man kan godt bruge string i VB6 :D, hvis man altså gør sådan:
Fold kodeboks ind/udKode 

Man skal bare huske at bruge "val()"...



Indlæg senest redigeret d. 15.05.2007 14:26 af Bruger #11573
t