C言語のNANとは?意味や使い方を解説

この記事では、NAN(Not a Number)という特殊な値について学びます。

NANの定義や特徴、使い方について詳しく解説します。

また、NANの注意点やチェック方法、さらにはNANを活用したプログラミングの例についても紹介します。

さらに、NANとNULLの違いやNANのメリットについても解説します。

初心者の方でもわかりやすく、C言語プログラミングにおけるNANの意味と使い方を理解することができます。

目次から探す

NANとは何か?

NAN(Not a Number)は、数値ではないことを表す特殊な値です。

C言語では、浮動小数点数の計算結果が不正な場合や未定義の場合にNANが返されることがあります。

NANは、数学的な演算ができないことを示すために使用されます。

NANの定義

NANは、float型やdouble型の変数に代入することができます。

以下のように定義されます。


#include <math.h>
float nan_value = NAN;
double nan_value = NAN;

math.hヘッダーファイルをインクルードすることで、NANを使用することができます。

NANの特徴

NANは、以下の特徴を持っています。

  1. NANは、他のどの数値とも等しくありません。

つまり、NAN == NANの比較結果は常にfalseとなります。

  1. NANを含む計算結果は、必ずNANとなります。

例えば、NAN + 1やNAN * 2などの演算結果は、いずれもNANとなります。

  1. NANを含む計算結果は、他の数値との比較結果も常にfalseとなります。

例えば、NAN > 0やNAN < 0などの比較結果は、いずれもfalseとなります。

NANの使い方

NANは、主に以下のような場面で使用されます。

  1. 計算結果が不正な場合や未定義の場合に、NANを返すことでエラーを示すことができます。

#include <stdio.h>
#include <math.h>
double divide(double a, double b) {
    if (b == 0) {
        return NAN;  // 0除算の場合、NANを返す
    }
    return a / b;
}
int main() {
    double result = divide(10, 0);
    if (isnan(result)) {
        printf("計算結果が不正です。\n");
    }
    return 0;
}
  1. NANを検出することで、特定の条件を判定することができます。

#include <stdio.h>
#include <math.h>
int main() {
    double value = sqrt(-1);  // 負の数の平方根はNANとなる
    if (isnan(value)) {
        printf("負の数の平方根は計算できません。\n");
    }
    return 0;
}

以上が、NANの意味と使い方についての説明です。

NANは、数値ではないことを示す特殊な値であり、計算結果が不正な場合や未定義の場合に使用されます。

NANを検出することで、エラーを判定することができます。

1 2 3 4
目次から探す