If IsInfinity(Double) ist wahr obwohl IsInfinity(Double) = 0

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

If IsInfinity(Double) ist wahr obwohl IsInfinity(Double) = 0

Beitrag von STARGÅTE »

Hallo Leute,

irgendwie ergibt das gerade kein sinn für mich.
Unter x86 ergibt IsInfinity(Double) im If-Statement ein #True, obwohl es "danach" normal 0.0 anzeigt.

Code: Alles auswählen

Define Double.d = 2.0e40

Debug Double
If IsInfinity(Double)
	Debug "IsInfinity = True"
Else
	Debug "IsInfinity = False"
EndIf
Debug IsInfinity(Double)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: If IsInfinity(Double) ist wahr obwohl IsInfinity(Double)

Beitrag von mk-soft »

Unterschiedliches Anzeige bei Window und Mac

Win 7 Pro (x64)
Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
20000000000000001000000000000000000000000.0
IsInfinity = False
0.0
macOS 10.13.2 (x64)
[20:08:05] Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
[20:08:05] 20000000000000000607572056854007333781504.0
[20:08:05] IsInfinity = False
[20:08:05] 0.0
P.S.
macOS 10.13.2 (x86)
[20:11:56] Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
[20:11:56] 20000000000000000607572056854007333781504.0
[20:11:56] IsInfinity = True
[20:11:56] 0.0
Ich glaube es ist ein Auto-Cast Fehler unter x86

Code: Alles auswählen

Define Double.d = 2.0e40
Debug CPUName()
Debug Double
If 0.0+IsInfinity(Double)
   Debug "IsInfinity = True"
Else
   Debug "IsInfinity = False"
EndIf
Debug IsInfinity(Double)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten