# Single.NaN Champ

## Définition

Représente une valeur autre qu'un nombre (`NaN`).Represents not a number (`NaN`). Ce champ est constant.This field is constant.

``public: float NaN = NaN;``
``public const float NaN = NaN;``
``val mutable NaN : single``
``Public Const NaN As Single  = NaN``

Single

## Exemples

L’exemple suivant illustre la NaN constante.The following example demonstrates the NaN constant.

``````Single zero = 0;

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

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

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

## Remarques

Une méthode ou un opérateur retourne NaN lorsque le résultat d’une opération n’est pas défini.A method or operator returns NaN when the result of an operation is undefined. Par exemple, le résultat de la Division de zéro par zéro est NaN , comme le montre l’exemple suivant.For example, the result of dividing zero by zero is NaN, as the following example shows. (Notez toutefois que la Division d’un nombre différent de zéro retourne la valeur PositiveInfinity ou NegativeInfinity , selon le signe du diviseur.)(But note that dividing a non-zero number by zero returns either PositiveInfinity or NegativeInfinity, depending on the sign of the divisor.)

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

En outre, un appel de méthode avec une NaN valeur ou une opération sur une NaN valeur retourne NaN , comme le montre l’exemple suivant.In addition, a method call with a NaN value or an operation on a NaN value returns NaN, as the following example shows.

``````float nan1 = Single.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 Single = Single.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
``````

Utilisez la IsNaN méthode pour déterminer si une valeur n’est pas un nombre.Use the IsNaN method to determine whether a value is not a number. En général, les Single opérateurs ne peuvent pas être utilisés pour effectuer une comparaison Single.NaN avec d’autres Single valeurs, bien que les méthodes de comparaison (telles que Equals et CompareTo ) puissent.In general, Single operators cannot be used to compare Single.NaN with other Single values, although comparison methods (such as Equals and CompareTo) can. L’exemple suivant illustre la différence de comportement entre les Single opérateurs de comparaison et les méthodes.The following example illustrates the difference in behavior between Single comparison operators and methods.

``````using System;

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

Console.WriteLine("\nNaN > NaN: {0}", Single.NaN > Single.NaN);
Console.WriteLine("NaN >= NaN: {0}", Single.NaN >= Single.NaN);
Console.WriteLine("NaN < NaN: {0}", Single.NaN < Single.NaN);
Console.WriteLine("NaN < 100.0: {0}", Single.NaN < 100.0f);
Console.WriteLine("NaN <= 100.0: {0}", Single.NaN <= 100.0f);
Console.WriteLine("NaN >= 100.0: {0}", Single.NaN > 100.0f);
Console.WriteLine("NaN.CompareTo(NaN): {0}", Single.NaN.CompareTo(Single.NaN));
Console.WriteLine("NaN.CompareTo(100.0): {0}", Single.NaN.CompareTo(100.0f));
Console.WriteLine("(100.0).CompareTo(Single.NaN): {0}", (100.0f).CompareTo(Single.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(Single.NaN): 1
``````
``````Module Example
Public Sub Main()
Console.WriteLine("NaN = NaN: {0}", Single.NaN = Single.NaN)
Console.WriteLine("NaN <> NaN: {0}", Single.NaN <> Single.NaN)
Console.WriteLine("NaN.Equals(NaN): {0}", Single.NaN.Equals(Single.NaN))
Console.WriteLine("Not NaN.Equals(NaN): {0}", Not Single.NaN.Equals(Single.NaN))
Console.WriteLine("IsNaN: {0}", Double.IsNaN(Double.NaN))
Console.WriteLine()
Console.WriteLine("NaN > NaN: {0}", Single.NaN > 100.0f)
Console.WriteLine("NaN >= NaN: {0}", Single.NaN >= 100.0f)
Console.WriteLine("NaN < NaN: {0}", Single.NaN < Single.NaN)
Console.WriteLine("NaN < 100.0: {0}", Single.NaN < 100.0f)
Console.WriteLine("NaN <= 100.0: {0}", Single.NaN <= 100.0f)
Console.WriteLine("NaN >= 100.0: {0}", Single.NaN > 100.0f)
Console.WriteLine("NaN.CompareTo(NaN): {0}", Single.NaN.CompareTo(Single.Nan))
Console.WriteLine("NaN.CompareTo(100.0): {0}", Single.NaN.CompareTo(100.0f))
Console.WriteLine("(100.0).CompareTo(Single.NaN): {0}", (100.0f).CompareTo(Single.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(Single.NaN): 1
``````