2013-03-08 52 views
5

NAN値はNot A Numberを意味し、IND値はIndeterminate numberを意味します。しかし、これら2つの違いは何ですか?どちらをC++で表現することができますか?IND番号とNAN番号の違い

+0

IND?またはINF? INFは '無限大'の標準です。 –

答えて

5

しかし、これら2つの違いは何です。

どちらも同じです。一部のプラットフォームでは、NaNの一部の異形として数字以外の数字を表示することを選択する一方、他のプラットフォームでは、​​の一部の異形として表示することを選択します。

どのようにして両方をC++で表現できますか。

std::numeric_limits<double>::quiet_NaN()(またはfloatまたはlong double、あなたが好む場合)。

+1

明らかに、彼らは同じではない、毎月。 Microsoftプラットフォームでは、INDはNaNにとって特別なケースです。具体的には、INDについては、指数は0xFFであり、仮数は0x400000である。その他のゼロ以外の仮数はNaNを与えます。 – ysap

2

あなたの操作は、二重に保存することができるよりも大きな正の数を生成する場合は、操作は、正方形を取るよう、一部の操作は、数学的な意味を持たないLinux

にWindows上1.#INFまたはinfファイルを返します。負の数の根を返します。sqrt(-1.0)log(-1.0)は、NaNを返します.NaNは「数字ではない」という総称です。

Windowsは、を表示している間に、NaNを-1.#IND( "IND"は "indeterminate")と表示します。 NaNを返す他の演算には、0/0、0 *∞、∞/∞が含まれます。

Refernce Link1Refernce Link2

+1

これはWindowsとLinuxの違いではなく、NaNの表示方法を決定するコンパイラの標準ライブラリです。 –

+0

"いくつかの演算は数学的な意味を持たない" 演算は数学的に意味がありますが、結果は浮動小数点数には格納できません。つまり、sqrt(-1.0)はiです。浮動小数点で格納されている –