java.lang.NumberFormatException:java.math.BigDecimal中的无限或NaN

时间:2013-01-19 11:42:20

标签: java java-ee

我有以下代码

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)));

我尝试使用double来代替BigDecimal,但它给了我无穷大的结果。当我使用BigDecimal时,我没有得到任何结果,但错误说:

  

线程“main”中的异常java.lang.NumberFormatException:无限或NaN       在java.math.BigDecimal。(未知来源)

任何帮助请原因这是我第一次处理大数字 注意:a,b,anc c值将通过循环更改,因此我必须保存总和。

1 个答案:

答案 0 :(得分:4)

(a)/(b*c) /Math.log10(2)是否定的,因此记录下来的内容为NaN 实际上,这是胡说八道,不是否定的。我不知道为什么你会在那里得到例外。

看起来你真的只是想做log 2 ,在这种情况下你只是把你的括号放在错误的地方,