SORU
17 Aralık 2009, PERŞEMBE


Nasıl C nan ve ınf kullanılır?

Ben bir sayısal yöntem bu olabilir dönüş nan veya ınf eğer bir hata var ve test amaçlı istiyorum geçici olarak kuvvet dönmek nan veya ınf olun durum olarak ele doğru. Güvenilir,derleyici bağımsızC nan ve ınf değerleri oluşturmak için bir yol?

Yaklaşık 10 dakika googling sonra sadece derleyici bağımlı çözümler bulmayı başardım.

CEVAP
17 Aralık 2009, PERŞEMBE


Eğer uygulama varsa test edebilirsiniz:

#include <math.h>
#ifdef NAN
/* NAN is supported */
#endif
#ifdef INFINITY
/* INFINITY is supported */
#endif

INFINITY varlığını C99 (ya da en azından en son taslak) tarafından garanti edilir, ve "tip sabit bir ifade genişletir olumlu veya imzasız temsil eden yüzer kullanılabilir; bir pozitif sabit değilse sonsuz yazın çevirisi anda bu taşma şamandıra."

NAN tanımlanmış olabilir ya da olmayabilir, ve "eğer bu uygulama yüzer türü için sessiz NaNs destekler. eğer tanımlanır Yazın yüzer sessiz bir NaN temsil eden sabit bir ifade olarak yorumlanacaktır."

Eğer kayan nokta değerleri karşılaştırarak iseniz, ve o not

a = NAN;

o zaman bile

a == NAN;

false. NaN kontrol etmenin bir yolu olabilir:

#include <math.h>
if (isnan(a)) { ... }

Ayrıca yapabilirsiniz: a NaN test etmek için a != a.

Ayrıca isfinite(), isinf(), isnormal(), ve C99 math.h 16 *makrolar var.

C99 da nan işlevleri vardır:

#include <math.h>
double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(ocnst char *tagp);

(Referans: n1256).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • kndx

    kndx

    11 Mart 2006