math.log计算自然对数(底数e),math.log10计算常用对数(底数10);二者均要求参数>0,否则返回nan;任意底数对数可用换底公式logₐ(b)=math.log(b)/math.log(a)实现。

Math.log 计算自然对数(以 e 为底),Math.log10 计算常用对数(以 10 为底)。
Math.log 是自然对数
Java 中 Math.log(double a) 返回的是 a 的自然对数,即 ln(a),底数为数学常数 e ≈ 2.71828。它要求参数 a > 0,否则返回 NaN;若 a 为正无穷,结果也是正无穷;若 a 为 1,结果为 0。
-
Math.log(Math.E)→ 1.0(因为 ln(e) = 1) -
Math.log(1)→ 0.0 -
Math.log(10)→ 约 2.302585(ln(10))
Math.log10 是常用对数
Math.log10(double a) 返回以 10 为底的对数,即 log₁₀(a)。同样要求 a > 0,否则返回 NaN;a 为 1 时结果为 0;a 为 10 的整数幂时结果为整数。
-
Math.log10(10)→ 1.0 -
Math.log10(100)→ 2.0 -
Math.log10(1)→ 0.0 -
Math.log10(2)→ 约 0.30103
需要其他底数?用换底公式
Java 没有直接提供任意底数的对数方法,但可用换底公式:logb(a) = ln(a) / ln(b) = log₁₀(a) / log₁₀(b)。推荐用 Math.log 实现,精度略高。
- 计算 log₂(8):
Math.log(8) / Math.log(2)→ 3.0 - 计算 log₅(25):
Math.log(25) / Math.log(5)→ 2.0 - 避免用
Math.log10(a) / Math.log10(b),虽然等价,但浮点误差可能略大
注意边界和异常情况
两个方法对非法输入行为一致:
- 参数 ≤ 0 → 返回
NaN - 参数为
NaN→ 返回NaN - 参数为正无穷 → 返回正无穷
- 参数为 0.0 → 返回负无穷(因为 log(0⁺) → −∞)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











