Bug Report:
Betrifft Bascom nach dem letzten Update auf 2.0.7.7
Hier liegt ein Fehler bei der Berechnung von Single-Variablen vor. Wenn man eine Variable nur oft genug mit 0.9 multipliziert, wird die wie erwartet 0. Wenn man weiter macht wird sie irgendwann NAN und dann irgendwann irgendwas ganz großes. Hier ein Beispielprogrämmchen mit dem der Fehler auf einem xmega nachvollzogen werden kann.
Der Fehler tritt nach 853 Durchgängen (NAN) und nach 1485 Durchgängen (3924871168.0) auf. Ändert man die Zeile A=A*0.9 inCode:$regfile = "xm256a3def.dat" $crystal = 32000000 '32MHz $hwstack = 256 $swstack = 256 $framesize = 256 $lib "xmega.lib" $external _xmegafix_clear $external _xmegafix_rol_r1014 Config Portf.3 = Output Config Portf.2 = Input Dim A As Single Dim Loopcount As Long Config Osc = Enabled , 32mhzosc = Enabled Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 Config Com7 = 9600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 Open "COM7:" For Binary As #1 A = 10 Wait 5 Do Incr Loopcount A = A * 0.9 Print #1 , Loopcount ; " " ; A Loop
A=A*9
A=A/10
funktioniert alles einwandfrei. Es scheint, daß der Fehler nur bei Multiplikationen von sehr kleinen Werten auftritt. Ob es noch andere Fälle gibt ist mir zumindest nicht bekannt. Bei Bascom 2.0.7.6 tritt der Fehler nicht auf.







 
			
			 Fehler bei Single Multiplikation mit kleinen Werten
 Fehler bei Single Multiplikation mit kleinen Werten
				 
					
					
					
						 Zitieren
Zitieren

Lesezeichen