5 Stimmen

Was ist die Objective-C-Entsprechung von Double.NaN in Java?

Was ist das Objective-C-Äquivalent von Double.NaN von Java? Ich habe eine Funktion, die einen Double zurückgibt, aber sie hat zwei Fälle, in denen sie zurückgeben kann Double.NaN . Wie würde ich das in Objective-C implementieren?

11voto

Stephen Canon Punkte 100340
#include <math.h>

...
return NAN;

So einfach ist das. Wenn Sie aus irgendeinem Grund nicht in der Lage sind <math.h> können Sie auch verwenden

return __builtin_nan("");

entweder mit GCC oder Clang.

Wie die meisten Low-Level-Spracheigenschaften von Objective-C ist dies übrigens direkt von C geerbt. Der relevante Teil der C-Spezifikation ist §7.12:

Das Makro NAN ist dann und nur dann definiert, wenn die Implementierung stille NaNs für den Typ float unterstützt. Er expandiert zu einem konstanten Ausdruck vom Typ float, der ein stilles NaN darstellt.

Beim Erlernen von Objective-C sollten Sie beachten, dass jede C-Programm ist ein Objective-C-Programm, und es ist nicht verkehrt, Funktionen der Sprache C zu verwenden, um Ihr Problem zu lösen.

11voto

Dave DeLong Punkte 240835
double nan = NAN;

Ziemlich einfach :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X