Bildirim
double nan(const char *arg); (C99)
float nanf(const char *arg); (C99)
long double nanl(const char *arg); (C99)
Açıklama
Kendisine geçirilen arg karakter dizisi işaretçisi parametresi ile gösterilen değeri NaN (Sayı olmayan) değere çevirerek geri döndürür.
NaN değerleri, 0/0 işleminin sonucu gibi tanımlanmamış veya gösterilemeyen float değerleri tanımlamak için kullanılır.
Parametreler
arg: NaN içeriğinin yer aldığı karakter dizisi değeridir. Eğer karakter dizisi boş olursa, nan() fonksiyonu bir NaN değeri geri döndürür.
Dönüş değeri
Karakter dizisini gösteren arg parametresinde yer alan NaN değeri geri döndürülür. Eğer uygulama NaN işlemini desteklemiyorsa, sıfır değeri geri döndürülür.
Örnek
#include <stdio.h>
#include <math.h>
#include <inttypes.h>
#include <string.h>
int main(void) {
char *arg="1";
double result;
uint64_t resultn;
result = nan (arg);
memcpy(&result, &resultn, sizeof (result));
printf ("nan(%s) = %.2f = (%I64X)", arg, result, resultn);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar:
nan(1) = nan = (40194E0060FF81)
Yukarıdaki program, nan() fonksiyonu ile elde edilen işlem sonucunu ekrana yazar.