Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Double.Equals (Método) (Object)

Devuelve un valor que indica si esta instancia equivale a un objeto especificado.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
public override bool Equals(
	Object obj
)

Parámetros

obj
Tipo: System.Object
Objeto que se va a comparar con esta instancia.

Valor devuelto

Tipo: System.Boolean
Es true si obj es una instancia de Double y es igual al valor de esta instancia; en caso contrario, es false.

El método Equals se debe utilizar con precaución, porque dos valores aparentemente equivalentes pueden ser distintos debido a la precisión diferente de los dos valores. En el ejemplo siguiente se muestra que el valor Double,3333 y Double devueltos tras dividir 1 entre 3 son distintos.


// Initialize two doubles with apparently identical values
double double1 = .33333;
object double2 = 1/3;
// Compare them for equality
Console.WriteLine(double1.Equals(double2));    // displays false


En lugar de comparar para ver la igualdad, una técnica recomendada consiste en definir un margen de diferencia aceptable entre dos valores (como ,01% de uno de los valores). Si el valor absoluto de la diferencia entre los dos valores es menor o igual que el margen, es probable que la diferencia sea debida a las diferencias en precisión y, por consiguiente, es probable que los valores sean iguales. En el ejemplo siguiente se utiliza esta técnica para comparar ,33333 y 1/3, los dos valores Double que en el ejemplo de código anterior se vio que eran distintos.


// Initialize two doubles with apparently identical values
double double1 = .33333;
object double2 = (double) 1/3;
// Define the tolerance for variation in their values
double difference = Math.Abs(double1 * .0001);

// Compare the values
// The output to the console indicates that the two values are equal
if (Math.Abs(double1 - (double) double2) <= difference)
   Console.WriteLine("double1 and double2 are equal.");
else
   Console.WriteLine("double1 and double2 are unequal.");


En este caso, los valores son iguales.

NotaNota

Dado que Epsilon define la expresión mínima de un valor positivo cuyo intervalo está cerca de cero, el margen de diferencia entre dos valores similares debe ser mayor que Epsilon. Normalmente, es muchas veces mayor que Epsilon.

La precisión de los números de punto flotante distinta de la precisión documentada depende específicamente de la implementación y versión de .NET Framework. En consecuencia, la comparación de dos números concretos quizá difiera entre las versiones de .NET Framework puesto que puede variar la precisión de la representación interna de los números.

En el ejemplo de código siguiente se muestra el método Equals.


obj1 = (Double)500;
if (a.Equals(obj1)) 
   Console.WriteLine("The value type and reference type values are equal.");


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.