Forum: Compiler & IDEs Not a number in C


von Stranero (Gast)


Lesenswert?

Hallo Forum, ich sitze gerade zu hause rum und habe mein C Buch nicht 
dabei. Nun fällt mich gerade die Frage an, ob es in C beim float nur 
"Not a number" gibt, sondern ob man auch plus und minus unendlich 
unterscheiden kann.
Wie kann ich auf nan  testen?

Mein zweiter Thread wäre nun:
Kann ich mit sgn plus, minus und Null unterscheiden?
Sorry hab mein Buch nicht dabei...

von nicht"Gast" (Gast)


Lesenswert?

Komisch, dass du hier postest heißt, du hast das größe Buch der Welt 
dabei :)

https://www.gnu.org/software/libc/manual/html_node/Infinity-and-NaN.html

von dummschwaetzer (Gast)


Lesenswert?

auf NaN kannst du mit = Testen:
wenn(Zahl=Zahl) falsch, ist Zahl NaN.

von Hp M. (nachtmix)


Lesenswert?

Stranero schrieb:
> Wie kann ich auf nan  testen?

IEEE-754-NaNs werden dargestellt, indem das Exponenten-Feld mit Einsen 
gefüllt wird (wie bei der Darstellung von Unendlichkeit) und irgendeine 
Zahl ungleich Null in den Signifikant geschrieben wird (im Unterschied 
zu Unendlich). Diese Darstellung erlaubt es, viele verschiedene 
NaN-Werte zu definieren, die sich durch die Bits des Signifikanten 
unterscheiden lassen. Der Standard ignoriert das Vorzeichenbit.
....
Nach einer Empfehlung des IEEE-Standards sollte es eine Funktion isnan() 
geben, mit der ein NaN erkannt werden kann. Da NaNs die einzigen Zahlen 
x {\displaystyle x} x sind, bei denen der Vergleich x ≠ x {\displaystyle 
x\neq x} x\neq x wahr ist, kann man auch diesen Vergleich zur Erkennung 
von NaNs verwenden.[2][3]

In C ist die Funktion isnan() in math.h , in Delphi(Lazarus) in der Unit 
Math, deklariert, so dass für eine Gleitkommavariable value die beiden 
folgenden Abfragen äquivalent sind:

  if ( isnan( value ) ) {
    // value ist NaN, Fehlerbehandlung ...
  }

  if ( value != value ) {
    // value ist NaN, Fehlerbehandlung ...
  }


Steht hier: https://de.wikipedia.org/wiki/NaN

: Bearbeitet durch User
von asdfasd (Gast)


Lesenswert?

man isnan isinf signbit

von Stranero (Gast)


Lesenswert?

@ Hp M. (nachtmix)  vielen Dank für die freundliche Hilfe  :-)

@asdfasd sorry, verstehe Antwort nicht wirklich, habe aber das 
unbewusste Gefühl das es sich um ein Haiku in C handelt. ;-)

von Markus F. (mfro)


Lesenswert?

Stranero schrieb:
> @asdfasd sorry, verstehe Antwort nicht wirklich, habe aber das
> unbewusste Gefühl das es sich um ein Haiku in C handelt. ;-)

Nö.

Auf einem "richtigen" Betriebssystem zeigt die gepostete Eingabe 
ausführliche Dokumentation zu deiner Frage an.

von Clemens L. (c_l)


Lesenswert?


von man men (Gast)


Lesenswert?

Markus F. schrieb:

> Auf einem "richtigen" Betriebssystem zeigt die gepostete Eingabe
> ausführliche Dokumentation zu deiner Frage an.


Man pages hat's auch online:

http://man.he.net/?topic=isnan+isinf+signbit&section=all

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.