Я не могу найти, почему у меня есть java.lang.ArithmeticException: Invalid operation
при использовании большого десятичного знака.java BigDecimal arithmaticException недействительная операция
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();
}
Некоторые из показателей имеют такие значения, как -27
. Есть ли способ обойти это, поскольку было бы трудно сохранить исходные значения со многими нулями. Я выбрал BigDecimal, так как мне нужно было точно.
Спасибо
Я абсолютно уверен, что у него нет бесконечной точности. Я все еще получаю эту ошибку. Использование double не дойдет до тех пор, пока некоторые выполняемые операции, как правило, выполняются около 0. Я не вижу, как 10 от выключения может быть бесконечной точностью, а научный калькулятор может поддерживать значение до -99. В противном случае был бы лучший способ представить это? –
Не могли бы вы дать нам трассировку стека исключения? –
@ErrorMessages 'pow (int)' будет, при заданном отрицательном числе, бросить исключение ArithmeticException. Всегда. http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#pow%28int%29 – Joni