Considere los siguientes dos códigos en Java:
// This program prints true class Geeksforgeeks { public static void main(String args[]) { float f = 5.25f; double d = 5.25 System.out.println(f == d); } }
Producción
true
// But this program prints false. class Geeksforgeeks { public static void main(String args[]) { float f = 5.1f; double d = 5.1; System.out.println(f == d); } }
Producción
false
La salida es verdadera en el primer ejemplo y falsa en el segundo. Sabemos que las precisiones de float y double son diferentes. El tamaño de la mantisa para float es 24 y 53 para doble.
Consideremos el primer ejemplo de 5.25. La representación binaria de la parte integral es 101 y la representación binaria de parte del punto es 0.01 (solo necesita dos bits)
Consideremos el segundo ejemplo 5.1. La representación binaria de una parte integral es la misma. Pero la representación binaria de 0.1 es 1/16 + 1/32 + 1/64 + 1/128… y así sucesivamente hasta llegar al final de la mantisa o la suma se vuelve más de 0.1. En este caso, llegamos al final de la mantisa y por lo tanto el valor de 5.1 se vuelve diferente en float y double.
Publicación traducida automáticamente
Artículo escrito por Niraj_Pandey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA