Ich bin mit einigen C-Code mit Floats rum, und ich bekomme 1. # INF00, -1. # IND00 und -1. # IND, wenn ich versuche, Schwimmer auf dem Bildschirm zu drucken. Was bedeuten diese Werte?Was bedeuten 1. # INF00, -1. # IND00 und -1. # IND?
Ich glaube, dass 1. # INF00 bedeutet positive Unendlichkeit, aber was ist mit -1. # IND00 und -1. # IND? Ich habe auch manchmal diesen Wert gesehen: 1. $ NaN was keine Zahl ist, aber was verursacht diese seltsamen Werte und wie können mir diese bei der Fehlersuche helfen?
Ich verwende MinGW die ich glaube, IEEE 754 Darstellung für Float Point-Nummern verwendet.
Kann jemand all diese ungültigen Werte auflisten und was sie bedeuten?
Ich weiß, dass das OP nicht wirklich danach gefragt hat, aber als ein praktischer Test wird 'myfloat == myfloat' false zurückgeben, wenn Sie einen dieser magischen Werte haben. – tenpn
@tenpn Eigentlich in C++, + Unendlichkeit == + Unendlichkeit. Versuchen Sie es mit 1.0/0.0: '1. # INF00' ==' 1. # INF00' gibt wahr zurück, '-1. # INF00' ==' -1. # INF00' gibt wahr zurück, aber '1. # INF00' = = '-1. # INF00' ist falsch. – bobobobo
Nicht sicher über andere Konfigurationen, aber unter Windows 7/Visual Studio 2010. float nan = sqrtf (-1.0f); Nan == Nan; // ergibt wahr ... im Gegensatz zu dem, was tenpn sagte .. (Kommentar von Yevgen V) – Jeff