a = 5 > 6
Debug a ; ergibt 0, das ist ok
a = 6 > 5
Debug a ; ergibt 1, auch ok
a = 5.0 > 6.0
Debug a ; ergibt 5 ???
a = 6.0 > 5.0
Debug a ; ergibt 6 ???
Das kann doch eigentlich nicht so gadacht sein, oder ?
Ciao,
Venom
Bug beim Vergleich von Floats?
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Die Vergleichsoperatoren "<" und ">" u.ä. geben in PureBasic keine Wahrheitswerte zurück. Wenn du deinen Code nämlich mit Variablen anstatt Konstanten verwendest, funkioniert es gar nicht mehr.
Du musst also immer If-Else-EndIf verwenden um solche Sachen zu testen. Das ist leider so.
Mich würde es auch freuen, wenn diese Eigenschaft, die viele Programmiersprachen besitzen, endlich auch in PureBasic verfügbar wäre.
Du musst also immer If-Else-EndIf verwenden um solche Sachen zu testen. Das ist leider so.
Mich würde es auch freuen, wenn diese Eigenschaft, die viele Programmiersprachen besitzen, endlich auch in PureBasic verfügbar wäre.
Hmm...
Bei Integerwerten funktioniert es doch offensichtlich. ( siehe oben )
Wenn das nicht so wäre, hätt ich ja nix gesagt, aber so ist das etwas inkonsequent.
Hat mich vorhin bestimmt ne Stunde gekostet, weil ich es immer mit integer getestet hab, und im Programm mit Floats kam nur noch Müll raus.
Bei Integerwerten funktioniert es doch offensichtlich. ( siehe oben )
Wenn das nicht so wäre, hätt ich ja nix gesagt, aber so ist das etwas inkonsequent.
Hat mich vorhin bestimmt ne Stunde gekostet, weil ich es immer mit integer getestet hab, und im Programm mit Floats kam nur noch Müll raus.
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Probier das hier mal aus. Da wirst du sehen, was ich meinte:
Code: Alles auswählen
a.l = 5
b.l = 6
c.l
c = a < b
Debug c
c = b < a
Debug c- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Vorsichtshalber Vergleiche nur nach:
If
While
Until
Da gabs schon bei vielen Probleme. Da BASIC "=" als Vergleichsoperator und auch als Zuweisungsoperator nimmt, kann man zur Zeit nur mit If usw. sicherstellen, das richtige Ergebnis zu erhalten. Wird sich hoffentlich mal ändern
If
While
Until
Da gabs schon bei vielen Probleme. Da BASIC "=" als Vergleichsoperator und auch als Zuweisungsoperator nimmt, kann man zur Zeit nur mit If usw. sicherstellen, das richtige Ergebnis zu erhalten. Wird sich hoffentlich mal ändern
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
