我無法找到爲什麼我得到一個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附近完成。我沒有看到如何關閉某個東西可以實現無限精度,並且科學計算器可以將值保持爲-99。否則會有更好的方式來表示這個? – 2012-03-29 21:28:21
你能給我們例外的堆棧跟蹤嗎? – 2012-03-29 21:51:09
@ErrorMessages'pow(int)'將在給定負數時拋出ArithmeticException。總是。 http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#pow%28int%29 – Joni 2012-03-29 21:54:45