2013-01-19 12 views
0

我有以下代碼java.lang.NumberFormatException:無限或NaN在java.math.BigDecimal的

double a = 29.0; 
double b = 9.0; 
double c = 4.0; 
BigDecimal sum= new BigDecimal(0.0); 
sum=sum.add(new BigDecimal(Math.log10((a)/(b*c) /Math.log10(2))); 

我試圖用雙倍的總和,而不是BigDecimal的,但它給了我無窮的結果。當我使用的BigDecimal我沒有結果,但錯誤說:

異常線程 「main」 java.lang.NumberFormatException:無限或NaN 在java.math.BigDecimal中(來源不明)

任何幫助,請引起這是我第一次處理大數字 注意:a,b和anc c值將通過循環更改,因此我必須保存總和。

回答

4

(a)/(b*c) /Math.log10(2)是負數,所以取對數給出NaN其實,這是無稽之談,不是負面的。我不知道你爲什麼會在那裏得到一個例外。

它看起來像你真的只是做記錄,在這種情況下,你只要把你的括號錯了地方,

+0

所以,我的問題是在括號中。非常感謝我現在正在嘗試查看它是否有效。 (我的程序每次運行都需要時間) – Wahedsaw

相關問題