Hola!!! Me quedó la duda de a qué se refieren exactamente cuando hablan de la precisión en datos de tipo float y double. Por lo que pude investigar, ¿Se refiere a que en la computadora no se puede representar con exactitud ningún número decimal? y que por tanto solo se busca hacer una aproximación?
- Por ejemplo Dado el número real: 0.3, al expresarlo como tipo float en java y además hacer una comparación nos queda asi:
float num= 0.3F;
System.out.println(num==0.3);
Lo que sale en la consola es false
, es decir aunque en la variable se almacenó el número 0.3, realmente no lo es. Cuando le pido más dígitos de precisión:
float num= 0.3F;
System.out.println(num==0.3);
System.out.printf("Valor de num: %.10f\n", num);
Imprime en consola: Valor de num: 0,3000000119
, por lo tanto realmente no es 0.3 exactamente. Cuando hago lo mismo con el tipo double se imprime en consola: true, Valor de num: 0,3000000000
, por lo tanto guardó el número con muchísima más precisión. Por lo tanto, ¿se habla de precisión ya que la computadora no siempre guarda el número que le indicamos sino que guarda uno aproximado, y además los tipos double aunque suelen ocupar más memoria, guardan el número con mayor precisión?