without scientific quitar notacion cientifica java formatting scientific-notation

scientific - quitar notacion cientifica javascript



Formato de doble valor en notación científica (4)

Tengo un número doble como 223.45654543434 y necesito mostrarlo como 0.223x10e+2 .

¿Cómo puedo hacer esto en Java?


De Mostrar números en notación científica . ( Copiar / pegar porque la página parece tener problemas )

Puede visualizar números en notación científica usando el paquete java.text . Específicamente la clase DecimalFormat en el paquete java.text se puede usar para este objetivo.

El siguiente ejemplo muestra cómo hacer esto:

import java.text.*; import java.math.*; public class TestScientific { public static void main(String args[]) { new TestScientific().doit(); } public void doit() { NumberFormat formatter = new DecimalFormat(); int maxinteger = Integer.MAX_VALUE; System.out.println(maxinteger); // 2147483647 formatter = new DecimalFormat("0.######E0"); System.out.println(formatter.format(maxinteger)); // 2,147484E9 formatter = new DecimalFormat("0.#####E0"); System.out.println(formatter.format(maxinteger)); // 2.14748E9 int mininteger = Integer.MIN_VALUE; System.out.println(mininteger); // -2147483648 formatter = new DecimalFormat("0.######E0"); System.out.println(formatter.format(mininteger)); // -2.147484E9 formatter = new DecimalFormat("0.#####E0"); System.out.println(formatter.format(mininteger)); // -2.14748E9 double d = 0.12345; formatter = new DecimalFormat("0.#####E0"); System.out.println(formatter.format(d)); // 1.2345E-1 formatter = new DecimalFormat("000000E0"); System.out.println(formatter.format(d)); // 12345E-6 } }


Esta respuesta ahorrará tiempo a las más de 40,000 personas que están buscando en Google "notación científica java".

¿Qué significa Y en %X.YE ?

El número entre el . y E es la cantidad de decimales (NO las cifras significativas).

System.out.println(String.format("%.3E",223.45654543434)); // "2.235E+02" // rounded to 3 decimal places, 4 total significant figures

El método String.format requiere que especifique la cantidad de dígitos decimales a redondear a. Si necesita conservar el significado exacto del número original, necesitará una solución diferente.

¿Qué significa X en %X.YE ?

El número entre el % y . es el número mínimo de caracteres que tomará la cadena. (este número no es necesario, como se muestra arriba, la cadena se completará automáticamente si la deja fuera)

System.out.println(String.format("%3.3E",223.45654543434)); // "2.235E+02" <---- 9 total characters System.out.println(String.format("%9.3E",223.45654543434)); // "2.235E+02" <---- 9 total characters System.out.println(String.format("%12.3E",223.45654543434)); // " 2.235E+02" <---- 12 total characters, 3 spaces System.out.println(String.format("%12.8E",223.45654543434)); // "2.23456545E+02" <---- 14 total characters System.out.println(String.format("%16.8E",223.45654543434)); // " 2.23456545E+02" <---- 16 total characters, 2 spaces


Finalmente lo hago a mano:

public static String parseToCientificNotation(double value) { int cont = 0; java.text.DecimalFormat DECIMAL_FORMATER = new java.text.DecimalFormat("0.##"); while (((int) value) != 0) { value /= 10; cont++; } return DECIMAL_FORMATER.format(value).replace(",", ".") + " x10^ -" + cont; }