Roshana Pitigala:
System.out.println(2e+5);
La producción de la línea de arriba es,
200000.0
Mientras que debajo de la línea es,
System.out.println(2e-5);
de salida es,
2.0e-5
¿Por qué 2e-5
no se resuelve abajo con -10^5
dar la salida,
0.00002
JB Nizet:
Porque así es como los diseñadores de la clase doble eligieron para ponerlo en práctica :
[...]
- Si m es mayor que o igual a 10 -3 , pero inferior a 10 7 , a continuación, se representa como la parte entera de m, en forma decimal sin ceros a la izquierda, seguido por ''. ( '\ u002E'), seguido de uno o más dígitos decimales que representan la parte fraccional de m.
- Si m es inferior a 10 -3 o mayor que o igual a 10 7 , a continuación, se representa en la llamada "informatizado notación científica." [...]
Podrían haber hecho otra elección, por supuesto, pero eso es simplemente cómo es.
Como dice la documentación, si quieres un formato específico, utilice un NumberFormat
dar formato a su doble.