No puedo encontrar por qué obtuve un java.lang.ArithmeticException: Invalid operation
mientras uso un gran decimal.java BigDecimal arithmaticException operación no válida
public static String E (int exponent, String value){
BigDecimal ten= new BigDecimal("10");
BigDecimal tempValue=new BigDecimal (value);
return tempValue.multiply(ten.pow(exponent)).toString();
}
Algunos de los exponentes tienen valores como -27
. ¿Hay alguna forma de evitar esto, ya que sería difícil almacenar los valores originales con muchos ceros. Elegí BigDecimal ya que necesitaba precisión.
Gracias
estoy absolutamente seguro de que no tiene una precisión infinita. Todavía consigo ese error. Usar double no llegará tan lejos, mientras que algunas operaciones realizadas tienden a realizarse cerca de 0. No veo cómo 10 para apagar algo puede ser una precisión infinita y una calculadora científica puede mantener el valor hasta -99. De lo contrario, ¿habría una mejor manera de representar esto? –
¿Podría darnos el rastro de la pila de la excepción? –
@ErrorMessages 'pow (int)' arrojará, cuando se le dé un número negativo, una ArithmeticException. Siempre. http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#pow%28int%29 – Joni