我有以下代码
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值将通过循环更改,因此我必须保存总和。
答案 0 :(得分:4)
实际上,这是胡说八道,不是否定的。我不知道为什么你会在那里得到例外。 (a)/(b*c) /Math.log10(2)
是否定的,因此记录下来的内容为NaN
。
看起来你真的只是想做log 2 ,在这种情况下你只是把你的括号放在错误的地方,