flotador tipo de datos de precisión en Java

ghoul932:

El valor del número 0.1, cuando se almacena como una sola precisión de número de punto flotante es 0.100000001490116119384765625 (fuente: https://www.h-schmidt.net/FloatConverter/IEEE754.html ) pero se imprime como 0,1 en Java. Creo que se debe a que Java limita el número de lugares decimales de flotación a siete. ¿Cómo puedo aumentar el número de decimales que se muestra?

Peter Lawrey:

Puede mostrar todos los dígitos con BigDecimal.

System.out.println(new BigDecimal(0.1f));
System.out.println(new BigDecimal(0.1));

Esto muestra la representación precisa. floatshows hasta 24 dígitos y doublemuestra hasta 53 dígitos como este es el número de bits en la mantisa.

0.100000001490116119384765625
0.1000000000000000055511151231257827021181583404541015625

Esto evita la necesidad de trabajar a cabo cuántos dígitos a la pantalla.

System.out.println(new BigDecimal(0.125f));
System.out.println(new BigDecimal(0.125));

huellas dactilares

0.125
0.125

ya que este valor no tiene ningún error representación ya que es 2 ^ -3

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=185151&siteId=1
Recomendado
Clasificación