# Double.NaN フィールド

## 定義

``public: double NaN = NaN;``
``public const double NaN = NaN;``
``val mutable NaN : double``
``Public Const NaN As Double  = NaN``

Double

## 例

NaN の使用例を次に示します。The following example illustrates the use of NaN:

``````Double zero = 0;

// This condition will return false.
if ( (0 / zero) == Double::NaN )
{
Console::WriteLine( "0 / 0 can be tested with Double::NaN." );
}
else
{
Console::WriteLine( "0 / 0 cannot be tested with Double::NaN; use Double::IsNan() instead." );
}
``````
``````Double zero = 0;

// This condition will return false.
if ((0 / zero) == Double.NaN)
Console.WriteLine("0 / 0 can be tested with Double.NaN.");
else
Console.WriteLine("0 / 0 cannot be tested with Double.NaN; use Double.IsNan() instead.");
``````
``````Dim zero As Double = 0

' This condition will return false.
If (0 / zero) = Double.NaN Then
Console.WriteLine("0 / 0 can be tested with Double.NaN.")
Else
Console.WriteLine("0 / 0 cannot be tested with Double.NaN; use Double.IsNan() instead.")
End If
``````

## 注釈

``````double zero = 0.0;
Console.WriteLine("{0} / {1} = {2}", zero, zero, zero/zero);
// The example displays the following output:
//         0 / 0 = NaN
``````
``````Dim zero As Double = 0
Console.WriteLine("{0} / {1} = {2}", zero, zero, zero/zero)
' The example displays the following output:
'         0 / 0 = NaN
``````

また、次の例に示すように、値を持つメソッド呼び出し NaN または値に対する操作が NaN 返さ NaN れます。In addition, a method call with a NaN value or an operation on a NaN value returns NaN, as the following example shows.

``````double nan1 = Double.NaN;

Console.WriteLine("{0} + {1} = {2}", 3, nan1, 3 + nan1);
Console.WriteLine("Abs({0}) = {1}", nan1, Math.Abs(nan1));
// The example displays the following output:
//       3 + NaN = NaN
//       Abs(NaN) = NaN
``````
``````Dim nan1 As Double = Double.NaN

Console.WriteLine("{0} + {1} = {2}", 3, nan1, 3 + nan1)
Console.WriteLine("Abs({0}) = {1}", nan1, Math.Abs(nan1))
' The example displays the following output:
'       3 + NaN = NaN
'       Abs(NaN) = NaN
``````

IsNaN値が数値でないかどうかを判断するには、メソッドを使用します。Use the IsNaN method to determine whether a value is not a number. 演算子は、 Equality 2 つの NaN 値が互いに等しくないと見なします。The Equality operator considers two NaN values to be unequal to one another. 一般に、 Double 演算子を使用して他の値と比較することはできません Double.NaN が、 Double 比較メソッド ( Equals やなど CompareTo ) は使用できます。In general, Double operators cannot be used to compare Double.NaN with other Double values, although comparison methods (such as Equals and CompareTo) can. 次の例は、比較演算子とメソッド間の動作の違いを示してい Double ます。The following example illustrates the difference in behavior between Double comparison operators and methods.

``````using System;

public class Example
{
public static void Main()
{
Console.WriteLine("NaN == NaN: {0}", Double.NaN == Double.NaN);
Console.WriteLine("NaN != NaN: {0}", Double.NaN != Double.NaN);
Console.WriteLine("NaN.Equals(NaN): {0}", Double.NaN.Equals(Double.NaN));
Console.WriteLine("! NaN.Equals(NaN): {0}", ! Double.NaN.Equals(Double.NaN));
Console.WriteLine("IsNaN: {0}", Double.IsNaN(Double.NaN));

Console.WriteLine("\nNaN > NaN: {0}", Double.NaN > Double.NaN);
Console.WriteLine("NaN >= NaN: {0}", Double.NaN >= Double.NaN);
Console.WriteLine("NaN < NaN: {0}", Double.NaN < Double.NaN);
Console.WriteLine("NaN < 100.0: {0}", Double.NaN < 100.0);
Console.WriteLine("NaN <= 100.0: {0}", Double.NaN <= 100.0);
Console.WriteLine("NaN >= 100.0: {0}", Double.NaN > 100.0);
Console.WriteLine("NaN.CompareTo(NaN): {0}", Double.NaN.CompareTo(Double.NaN));
Console.WriteLine("NaN.CompareTo(100.0): {0}", Double.NaN.CompareTo(100.0));
Console.WriteLine("(100.0).CompareTo(Double.NaN): {0}", (100.0).CompareTo(Double.NaN));
}
}
// The example displays the following output:
//       NaN == NaN: False
//       NaN != NaN: True
//       NaN.Equals(NaN): True
//       ! NaN.Equals(NaN): False
//       IsNaN: True
//
//       NaN > NaN: False
//       NaN >= NaN: False
//       NaN < NaN: False
//       NaN < 100.0: False
//       NaN <= 100.0: False
//       NaN >= 100.0: False
//       NaN.CompareTo(NaN): 0
//       NaN.CompareTo(100.0): -1
//       (100.0).CompareTo(Double.NaN): 1
``````
``````Module Example
Public Sub Main()
Console.WriteLine("NaN = NaN: {0}", Double.NaN = Double.NaN)
Console.WriteLine("NaN <> NaN: {0}", Double.NaN <> Double.NaN)
Console.WriteLine("NaN.Equals(NaN): {0}", Double.NaN.Equals(Double.NaN))
Console.WriteLine("Not NaN.Equals(NaN): {0}", Not Double.NaN.Equals(Double.NaN))
Console.WriteLine("IsNaN: {0}", Double.IsNaN(Double.NaN))
Console.WriteLine()
Console.WriteLine("NaN > NaN: {0}", Double.NaN > 100.0)
Console.WriteLine("NaN >= NaN: {0}", Double.NaN >= 100.0)
Console.WriteLine("NaN < NaN: {0}", Double.NaN < Double.NaN)
Console.WriteLine("NaN < 100.0: {0}", Double.NaN < 100.0)
Console.WriteLine("NaN <= 100.0: {0}", Double.NaN <= 100.0)
Console.WriteLine("NaN >= 100.0: {0}", Double.NaN > 100.0)
Console.WriteLine("NaN.CompareTo(NaN): {0}", Double.NaN.CompareTo(Double.Nan))
Console.WriteLine("NaN.CompareTo(100.0): {0}", Double.NaN.CompareTo(100.0))
Console.WriteLine("(100.0).CompareTo(Double.NaN): {0}", (100.0).CompareTo(Double.NaN))
End Sub
End Module
' The example displays the following output:
'       NaN == NaN: False
'       NaN != NaN: True
'       NaN.Equals(NaN): True
'       ! NaN.Equals(NaN): False
'       IsNaN: True
'
'       NaN > NaN: False
'       NaN >= NaN: False
'       NaN < NaN: False
'       NaN < 100.0: False
'       NaN <= 100.0: False
'       NaN >= 100.0: False
'       NaN.CompareTo(NaN): 0
'       NaN.CompareTo(100.0): -1
'       (100.0).CompareTo(Double.NaN): 1
``````