Hej Lyckades hitta lite info i MSDN-library på microsofts hemsida, där det stod att Single och Double faktisk kan ha små avrundningsfel och att Currency fungerade bättre när det handlade om decimaltal med max 4 decimaler, så nu verkar allt funka. Vb6 räknar fel
Det är så att jag har en loop som ser ut ungefär såhär, men efter att man kört igenom den kanske 15-20 gånger så börjar den att räkna fel. När den har kommit t ex 42,2 så blir det inte 42,2 utan 42,1999999, varför blir det så och hur fixar jag det?.
Public Totaltid as Single
Public Intervall as Single
Public ToppTid as Single
Public Minuter as integer
Public Sekunder as integer
Public Hundradelar as integer
--------------------------------------------
Public Sub LaggIhopTid()
Totaltid=29
Intervall=0.4
ToppTid=45
Do Until Totaltid > ToppTid
call RaknaTid
Totaltid = Totaltid + Intervall
Loop
End Sub
Public Sub RaknaTid()
Minuter = Totaltid / 60
Minuter = Minuter Mod 60
Sekunder = Totaltid Mod 60 'här blir det ofta knas, läs nedanför
Hundradelar = Totaltid * 100
Hundradelar = Hundradelar Mod 100
End Sub
En sak till, när jag kör koden: Sekunder = Totaltid Mod 60 (där totaltid=30.5) så blir Sekunder=31. Kör jag däremot:
Sekunder = 30.5 Mod 60 så blir Sekunder=30. Varför blir det så?? Har kliat mig mer än en gång i huvet över detta :) Sv: Vb6 räknar fel
Du har deklarerat din variabel som Integer, dvs Heltal då får du inte med decimaler.
Jag vet inte om det är Float eller Double som du ska använda, eller om det finns någon bättre.
//Anna-KarinSv: Vb6 räknar fel
Tack för hjälpen i alla fall!