Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Double.NaN-Feld

 

Veröffentlicht: Oktober 2016

Stellt einen Wert dar, der keine Zahl ist (NaN). Dieses Feld ist konstant.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public const double NaN

Feldwert

Type: System.Double

Gibt eine Methode oder einen Operator NaN Wenn das Ergebnis eines Vorgangs ist nicht definiert. Das Ergebnis der Division von 0 durch 0 (null) ist z. B. NaN, wie im folgende Beispiel gezeigt. (Aber beachten Sie, dass eine Zahl ungleich NULL durch 0 (null) geteilt entweder gibt PositiveInfinity oder NegativeInfinity, je nachdem, auf das Vorzeichen des Divisors identisch.)

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

Darüber hinaus Aufrufen einer Methode mit einer NaN Wert oder einen Vorgang auf eine NaN Wert gibt NaN, wie das folgende Beispiel zeigt.

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

Verwenden der IsNaN Methode, um zu bestimmen, ob ein Wert keine Zahl ist. Die Equality Operator betrachtet zwei NaN Werte miteinander berücksichtigt werden. Im allgemeinen Double Operatoren können nicht verwendet werden, um Double.NaN mit anderen Double Werte, obwohl Methoden zum Zeichenfolgenvergleich (z. B. Equals und CompareTo) können. Das folgende Beispiel veranschaulicht den Unterschied im Verhalten zwischen Double Vergleichsoperatoren und Methoden.

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

Im folgenden Beispiel wird die Verwendung von NaN veranschaulicht:

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.");

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: