如何避免大对数溢出

时间:2014-08-13 18:08:08

标签: java overflow logarithm

我试图在Java中计算一个大的logarithim,并且无法解决如何解决溢出问题。研究表明我需要使用BigDecimal类,但我不能在其中加入双重类。 有人可以帮忙吗?

干杯,这是我尝试计算的一个例子: Math.log10(4224127912分之13168375)

1 个答案:

答案 0 :(得分:1)

您必须解释错误消息。

Y.java:16: error: integer number too large: 4224127912
        System.out.println(          Math.log10(13168375/4224127912) );
                                                     ^

这意味着4224127912(!)对于整数来说太大了。

你可以:

 Math.log10(13168375/4224127912.0)   // use a double literal

 Math.log10((double)13168375/4224127912L)    // use a long literal  
 Math.log10(13168375.0/4224127912L)          // use a long literal

overflow

这里没有对数是“大”。