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.CompareTo-Methode: (Object)

 

Veröffentlicht: Oktober 2016

Vergleicht diese Instanz mit einem angegebenen Objekt und gibt eine ganze Zahl zurück, die angibt, ob der Wert dieser Instanz kleiner oder größer als der Wert des angegebenen Objekts ist oder mit diesem übereinstimmt.

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

public int CompareTo(
	object value
)

Parameter

value
Type: System.Object

Ein Vergleichsobjekt oder null.

Rückgabewert

Type: System.Int32

Eine Zahl mit Vorzeichen, die das Verhältnis zwischen dem Wert dieser Instanz und value angibt.

Wert

Beschreibung

Eine negative ganze Zahl

Diese Instanz ist kleiner als value.

- oder -

Diese Instanz ist keine Zahl (NaN), und value ist eine Zahl.

0 (Null)

Diese Instanz ist gleich value.

- oder -

Diese Instanz und value sind beide Double.NaN, PositiveInfinity oder NegativeInfinity

Eine positive ganze Zahl

Diese Instanz ist größer als value.

- oder -

Diese Instanz ist eine Zahl, und value ist keine Zahl (NaN).

- oder -

value ist null.

Exception Condition
ArgumentException

value ist keine Double.

Die value Parameter muss null oder einer Instanz von Doubleist, andernfalls wird eine Ausnahme ausgelöst. Jede Instanz von Double, unabhängig vom Wert wird als größer betrachtet null.

Werte müssen als gleich betrachtet werden identisch sein. Insbesondere dann, wenn mehrere mathematische Vorgänge Gleitkommawerte abhängt, ist es üblich sind, um die Genauigkeit verloren gehen und deren Werte mit Ausnahme von ihren letzten gültigen Ziffern fast identisch sein. Deswegen den Rückgabewert der CompareTo Methode manchmal mag überraschenden. Multiplikation nach einem bestimmten Wert gefolgt von einer Division durch den gleichen Wert erzeugt z. B. sollte den ursprünglichen Wert. Im folgenden Beispiel stellt jedoch der berechnete Wert heraus größer als der ursprüngliche Wert sein. Anzeigen von alle signifikanten Ziffern der beiden Werte mithilfe der "R" standardmäßige Zahlenformatzeichenfolge gibt an, dass der berechnete Wert der ursprüngliche Wert in der letzten gültigen Ziffern unterscheiden. Informationen zur Behandlung von solche Vergleiche, finden Sie im Abschnitt "Hinweise" der Equals(Double) Methode.

using System;

public class Example
{
   public static void Main()
   {
       double value1 = 6.185;
       object value2 = value1 * .1 / .1;
       Console.WriteLine("Comparing {0} and {1}: {2}\n",
                         value1, value2, value1.CompareTo(value2));
       Console.WriteLine("Comparing {0:R} and {1:R}: {2}",
                         value1, value2, value1.CompareTo(value2));
   }
}
// The example displays the following output:
//       Comparing 6.185 and 6.185: -1
//       
//       Comparing 6.185 and 6.1850000000000005: -1

Diese Methode wird implementiert zur Unterstützung der IComparable Schnittstelle. Beachten Sie, dass, obwohl ein NaN ist nicht als gleich einem anderen NaN (sogar selbst), die IComparable Schnittstelle erfordert, dass A.CompareTo(A) 0 (null) zurück.

Die Genauigkeit von Gleitkommazahlen über die dokumentierte Genauigkeit ist spezifisch für die Implementierung und die Version von .NET Framework. Folglich kann ein Vergleich von zwei bestimmten Zahlen zwischen verschiedenen Versionen von .NET Framework geändert werden, da die Genauigkeit der internen Darstellung der Zahlen ändern kann.

Das folgende Codebeispiel veranschaulicht die Verwendung von CompareTo im Kontext des Double.

obj1 = (Double)450;

if (a.CompareTo(obj1) < 0) 
   Console.WriteLine("{0} is less than {1}.", a.ToString(), obj1.ToString());

if (a.CompareTo(obj1) > 0) 
   Console.WriteLine("{0} is greater than {1}.", a.ToString(), obj1.ToString());

if (a.CompareTo(obj1) == 0) 
   Console.WriteLine("{0} equals {1}.", a.ToString(), obj1.ToString());

.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: