我将进行包含大数或小数的计算,并得出一个很大或很小的数字。
我现在关心的是如何让事情变得尽可能精确,。
当我在Google计算器1000^10 = 1e+30上尝试这种计算时,它可以被解读为1000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,
当我使用BigDecimal尝试相同的计算时,我得到了不同的结果!
BigDecimal bigNumber = new BigDecimal(Math.pow(1000, 10));
System.out.println(bigNumber);十万,000,000,000,019,884,624,838,656
我很高兴,它给了我所有的数字,没有使用科学的符号,但它提供了一些额外的垃圾数字在结尾。
请注意,我并不局限于BigDecimal。反正我也很关心精确性。
因此,如何在Java?中获得一个非常高的精度(对于太大的数字和太小的数字)
发布于 2014-05-09 08:29:35
使用BigDecimal和在double中进行计算与根本不使用BigDecimal是一样的。
使用BigDecimal进行计算:
BigDecimal bigNumber = new BigDecimal(1000).pow(10);
System.out.println(bigNumber);https://stackoverflow.com/questions/23559862
复制相似问题