我正在尝试用Java计算较大的对数,但无法解决如何解决溢出问题。研究表明,我需要使用BigDecimal类,但不能对此进行强制转换。
有人可以帮忙吗?

干杯,这是我要计算的示例:
Math.log10(13168375/4224127912)

最佳答案

您必须解释错误消息。

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

而且这里没有对数是“大”。

07-24 14:29