NaNとは?プログラミングで遭遇する特殊な値

ざっくりと

  • プログラミングで数値以外の結果を示す
  • エラーではなく情報提供
  • NULLとは異なり、結果が存在する状態

NaNとは、数値以外の結果です。

概要説明

NaNとはプログラミングで数値以外の結果を示す特殊な値だ。 なぜならば、計算結果が数値を超えた場合や数値で表せない場合に表示されるからだ。

例えば0で割った時などだ。そして、NaNはエラーではなく、ある種の情報を提供する。つまり、何かがおかしいというシグナルを送る。だからNaNの理解は重要だ。

職業職種

  • プログラマー
    NaNは、プログラミングの結果を理解するのに重要な役割を果たす。なぜなら、計算結果が予想外の値を返す時、NaNを通じて原因を特定できるからだ。例えば、0で割った時にNaNが表示される。
  • データサイエンティスト
    NaNは、データ分析の際に重要なツールとなる。なぜなら、分析結果が数値として出力できない時、NaNが示すことでデータの問題を把握できるからだ。例えば、無効なデータによる計算結果がNaNになる場合がある。
  • システムエンジニア
    NaNは、システムのデバッグに役立つ。なぜなら、システムが数値以外の結果を生成した時、NaNが示すことでエラーを特定できるからだ。例えば、システムの演算エラーがNaNとして表示される。

NaNは、英語の”Not a Number”の略で、直訳すると「数値ではない」という意味です。これは、プログラミングで数値を想定した処理の結果が、数値以外の値になったときに使用されます。

類似語

  • NULL
    NULLは、何も値が入っていない状態を表す。なぜなら、データベースなどで、何も値が設定されていないフィールドにはNULLが表示されるからだ。例えば、年齢のデータが未設定の場合、そのフィールドはNULLとなる。
  • Undefined
    Undefinedは、変数が存在するけど値がまだ設定されていないことを示す。なぜなら、プログラミングでは変数を作るときは値を必ず設定するわけじゃないからだ。例えば、変数を作ったけどまだ何も代入していないとき、その変数の値はUndefinedとなる。
  • Infinity
    Infinityは、計算結果が無限大になることを示す。なぜなら、数学的に無限大となる計算結果をプログラムが扱える形にするためだ。例えば、正の数を0で割ったとき、その結果はInfinityとなる。

反対語

  • 具体的な数値
    具体的な数値は、NaNの反対語である。なぜなら、NaNは非数値を示すが、「具体的な数値」は明確な数字を示すからだ。例えば1、2、3など。
  • Infinity
    Infinityは、NaNの反対語である。なぜなら、NaNは定義不能な計算結果を指す一方で、Infinityは無限大を指すからだ。例えば0で割る操作の結果。
  • undefined
    undefinedは、NaNの反対語である。なぜなら、NaNは演算不可能な数値の結果を表すが、「undefined」は定義自体が存在しない状況を示すからだ。例えば変数が宣言されていない状況。

会話例

  • データサイエンスチームのミーティング
    「このデータセットの分析結果がNaNばかり出てくるけど、何が問題なの?」
    「それはおそらく何かしらの計算が定義できない値を出したからだよ。確認してみる必要があるね。」
  • プログラマーとクライアントの打ち合わせ
    「レポートの数字が何かおかしい。なぜNaNって出ているの?」
    「それは何かしらのエラーで、計算がうまくいかなかった可能性が高いです。すぐに修正します。」
  • 教師と生徒のプログラミング授業
    「先生、なぜこの計算の答えがNaNになるの?」
    「それはおそらく0で割るなどの、計算結果が定義できない操作を行ったからだよ。」

注意点

NaNを使用する時の注意点は、計算が正しく行われているか確認することである。なぜならばNaNは非数値、つまり計算がうまく行かなかったときに出るものだからだ。

例えば0で割るという計算は不可能なのでNaNが出る。そして、このような非数値が頻繁に出てくると、プログラム全体の動作に問題が生じる可能性がある。

だから、NaNが出たら、その原因を究明し、修正することが重要だ。

NaNとNULLは、間違えやすいので注意しましょう。

NaNは、非数値を示すものです。

一方、NULLは、値が何も設定されていない状態を示すものです。

記事を書いてる人

ガラケー時代からWEB開発やってる自宅SE です。

「○○を知りたい!!」「○○が分からない!!」などありましたら、Twitterでもブログでもコメントいただければ、ご期待に添えるように頑張ります!

ネット事件簿チャンネルを運営しているので、YouTubeもぜひ覗いてみてください!!

雨おやじのSNSを覗く!!
IT用語辞典
雨おやじのSNSを覗く!!
ITkagyo

コメント