Java中Math.log(0.5)与计算器计算结果不一致的原因咨询
Math.log(0.5)与计算器结果差异的原因
问题出在对数的底数不同:
- Java里的
Math.log()方法计算的是自然对数(以e为底,也就是ln),ln(0.5)的精确值约为-0.6931,和你得到的-0.69匹配。 - 普通计算器默认的「log」按钮,计算的是常用对数(以10为底,log₁₀),log₁₀(0.5)的精确值约为-0.3010,所以你看到的是-0.3。
如果需要在Java里得到和计算器一致的结果,有两种方式:
- 直接用
Math.log10(0.5),这个方法专门计算以10为底的对数; - 用换底公式手动计算:
Math.log(0.5) / Math.log(10),结果和Math.log10完全一致。
内容的提问来源于stack exchange,提问作者Jonas Lu
相关产品推荐
相关产品推荐

