Falsche Ausgabe mit Debug

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Falsche Ausgabe mit Debug

Beitrag von Helle »

Folgender Code zeigt was ich meine:

Code: Alles auswählen

;Reihenfolge bestimmt die Genauigkeit, wenn Konstanten gemeinsam mit "normalen" Variablen verwendet werden
;gilt auch z.B. für Division

zehn.d = 10.0
dddd.d = 10.123456789
#zehn = 10.0

Debug #PI          ;nur für Ziffernfolge
Debug #PI*10       ;Ergebnis ist double Precision, richtig
Debug #PI*#zehn    ;Ergebnis ist double Precision, richtig 
Debug #zehn*#PI    ;Ergebnis ist double Precision, richtig
Debug zehn*#PI     ;Ergebnis ist double Precision, richtig
Debug #PI*zehn     ;SINGLE!!! FALSCH
Debug #zehn*dddd   ;SINGLE!!! FALSCH
Debug dddd*#zehn   ;Ergebnis ist double Precision, richtig
Bei "falscher" Reihenfolge der Berechnungsglieder schraubt Debug die Genauigkeit herunter, was natürlich falsch ist. Tritt auf, wenn die Konstante am Anfang steht.

Gruss
Helle
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Code: Alles auswählen

Debug #PI*#zehn    ;Ergebnis ist double Precision, richtig
Debug #zehn*#PI    ;Ergebnis ist double Precision, richtig
also das wundert mich nun wirklich... da ist doch keinerlei typ angegeben.
ist single-float doch nicht mehr der standard-float-typ....?

das ganze sieht mir nach einem casting-problem aus.

besonders interessant wird das, wenn man integers und floats zusammen benutzt.
da muss man ganz extrem auf reihenfolge und klammerung achten,
um im richtigen schritt der berechnung zu casten.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Gesperrt