scientific - numeros cientificos java
Java analiza un número en notación exponencial (2)
Use Double.valueOf()
y emita el resultado a long
:
Double.valueOf("9.18E+09").longValue()
Estoy tratando de hacer una conversión de una Cadena a un entero para el cual obtengo una NumberFormatException
. La razón es bastante obvia. Pero necesito una solución aquí. A continuación se muestra el código de ejemplo.
public class NumberFormatTest {
public static void main(String[] args) {
String num = "9.18E+09";
try{
long val = Long.valueOf(num);
}catch(NumberFormatException ne){
//Try to convert the value to 9180000000 here
}
}
}
Necesito la lógica que va en la sección de comentarios, una genérica estaría bien. Gracias.
BigDecimal bd = new BigDecimal("9.18E+09");
long val = bd.longValue();
Pero esto agrega gastos generales, que no es necesario con números más pequeños. Para los números que se pueden representar en long
, use la solución de Joachim Sauer.