Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Complex.Equals (Complex)

 

Data di pubblicazione: ottobre 2016

Restituisce un valore che indica se l'istanza corrente e un numero complesso specificato hanno lo stesso valore.

Spazio dei nomi:   System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public bool Equals(
	Complex value
)

Parametri

value
Type: System.Numerics.Complex

Numero complesso da confrontare.

Valore restituito

Type: System.Boolean

true Se questo numero complesso e value hanno lo stesso valore; in caso contrario, false.

Il Equals(Complex) metodo fornisce il IEquatable<T> implementazione per il Complex struttura. Ha prestazioni leggermente migliori rispetto a Equals(Object) metodo perché non è necessario convertire il parametro in un numero complesso.

Due numeri complessi sono uguali se sono uguali le parti reali e parti immaginarie sono uguali. Il Equals(Complex) metodo è equivalente all'espressione seguente:

return this.Real.Equals(value) && this.Imaginary.Equals(value);      

Note per i chiamanti:

Utilizzare il Equals metodo con cautela, perché due valori che sono apparentemente equivalenti possono essere considerati diversi a causa della diversa precisione dei relativi componenti reali e immaginarie. L'esempio seguente segnala che (3.33333, 0.142857) e (10/3, 1/7) non sono uguali.

System.Numerics.Complex c1 = new System.Numerics.Complex(3.33333, .142857);
System.Numerics.Complex c2 = new System.Numerics.Complex(10/3.0, 1.0/7);
Console.WriteLine("{0} = {1}: {2}", c1, c2, c1.Equals(c2));       
// The example displays the following output:
//    (3.33333, 0.142857) = (3.33333333333333, 0.142857142857143): False

Una tecnica consigliata è definire un margine accettabile di differenza tra i due valori (ad esempio. 01% di uno dei componenti reali e immaginarie i valori) anziché confrontare i valori per verificarne l'uguaglianza. Se il valore assoluto della differenza tra i due valori è minore o uguale a margine, la differenza è probabilmente a causa delle differenze di precisione e, pertanto, i valori sono probabile che siano uguali. Nell'esempio seguente utilizza questa tecnica per confrontare i due valori complessi che il precedente esempio di codice risulta per essere uguali. Trova i due numeri complessi siano uguali.

System.Numerics.Complex c1 = new System.Numerics.Complex(3.33333, .142857);
System.Numerics.Complex c2 = new System.Numerics.Complex(10/3.0, 1.0/7);
double difference = .0001;

// Compare the values
bool result = (Math.Abs(c1.Real - c2.Real) <= c1.Real * difference) &
              (Math.Abs(c1.Imaginary - c2.Imaginary) <= c1.Imaginary * difference);
Console.WriteLine("{0} = {1}: {2}", c1, c2, result);       
// The example displays the following output:
//    (3.33333, 0.142857) = (3.33333333333333, 0.142857142857143): True

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 4.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: