Hola,
Estoy teniendo problemas para comprender los resultados
del metodo equal (operador ==) sobre tipos double. A
continuación incluyo un codigo sencillo de ejemplo:
[STAThread]
static void Main(string[] args)
{
double a1=1;
double b1=-1.1;
Console.WriteLine(a1+b1);
Console.WriteLine(-0.1);
Console.WriteLine(-0.1==a1+b1); //sentencia 1
Console.WriteLine((-0.1-a1-b1)==0); //sentencia 2
}
Resultados por consola:
-0,1
-0,1
False
True
Esperaba que la sentencia 1 diese como resultado true,
pero no es asi. En cambio, la sentencia 2 si que resulta
cierta.
¿Cual es el problema? ¿Como debo interpretar el operador
==?. He hecho pruebas mostrando los HashCode y se obtienen
los mismo resultados.
Muchas gracias de antemano,
Kiko
Leer las respuestas