08. juli 2006 - 10:55Der er
4 kommentarer og 1 løsning
Long Overflow ved lille værdi.
Kan nogen give mig forklaringen på nedenstående mystik?
Private Sub Form_Load() Dim Sum As Long
1 Sum = 2000000000 MsgBox Sum 'MsgBox skriver:"2000000000". OK.
2 Sum = 2 * 16383 MsgBox Sum 'MsgBox Skriver:"32766". Ok
3 Sum = 2 * 16384 'VB Melder:"Error 6: Overflow". MsgBox Sum End Sub
Ad. 1, Sum tildeles værdien 2 Mia. Virker fint.
Ad. 2, Sum tildeles 2 * 16383. Virker fint.
Ad. 3, Sum tildeles 2 * 16384. VB melder Overflow. 2 * 16384 er 32768, altså 1 mere end en integer kan rumme. Hvorfor opfører en Long-Variabel sig som en Integer når den tildeles en beregning?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
08. juli 2006 - 11:12#1
Fordi VB læser 2 og 16384 som integers og derfor er der en overflow inden den overhovedet kommer til at skulle konverterer op til en long. Måde at gøre det på er at give type identifikation i forbindelse med dine literaler. Sådan her skulle meget gerne fungerer:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.