跳到主内容
UniKit

对数计算器

用换底公式计算任意底对数,支持 ln / lg / log₂ 快捷方式、指数式与对数式互转、常用对数表与精度设置。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

常用底数
对数值
10

对数式:log₂(1024) = 10

指数式与对数式互转

同一个关系 b^x = n 的两种写法,数值会按当前精度四舍五入

对数式 log_b(n) = xlog_3(27) = 3
指数式 b^x = n3^3 = 27
真数 b^x27

由底数与指数求真数,验证两式互逆

常用对数表分别以 e、10、2 为底
真数 nln nlg nlog₂ n
1000
20.693147180.301031
31.098612290.477121251.5849625
41.386294360.602059992
51.609437910.698972.32192809
102.3025850913.32192809
1004.6051701926.64385619
10006.9077552839.96578428
0.1-2.30258509-1-3.32192809
0.5-0.69314718-0.30103-1
e10.434294481.44269504

这个工具能做什么

  • 算任意底的对数:底数不是 e / 10 / 2 时用换底公式 log_b(n) = ln n / ln b,不用自己按计算器两遍相除。
  • 算法复杂度时快速确认 log₂:输入 1024 得到 10,对应二分查找 1024 个元素需要 10 次比较这类结论。
  • 做指数式与对数式的互转练习:给出底数和真数就同时得到 log_b(n) = x 与 b^x = n 两种写法,再由底数与指数反推真数,验证两式互逆。
  • 查常用对数表:一次性列出 1、2、3、4、5、10、100、1000、0.1、0.5、e 的 ln、lg、log₂ 值,精度可调到 0–12 位小数。

示例

输入

真数 n = 1024,底数 b = 2

输出

log₂(1024) = 10
指数式:2^10 = 1024

底数为 e / 10 / 2 时直接走 Math.log / log10 / log2,避免 Math.log(1000) / Math.log(10) 算出 2.9999999999999996 这类二进制残差。

常见问题

为什么底数和真数有取值范围限制?

对数要求真数 n > 0、底数 b > 0 且 b ≠ 1。输入 0、负数、底数 1 或 e 之外的非数字都会直接报错,而不是返回 -Infinity 或 NaN 这类静默错误值。

结果会有浮点误差吗?

常见底数(e、10、2)走对应的 Math.log 实现,结果通常是精确的;其它底数用换底公式,会带一点浮点误差。展示前会按你设的精度四舍五入,并补一个极小的修正量,避免 2.9999999999999996 被舍成 3.0 之前先被判成 2.9999999999。

精度能设多高?

0 到 12 位小数。但 JavaScript 的 number 是双精度浮点,只有约 15–17 位有效数字,超过 12 位小数得到的「精度」是假的,所以上限卡在 12。

结果超出可表示范围是什么意思?

由底数和指数求真数(b^x)时,如果结果超过 1.8e308 会变成 Infinity,或小到变成 0,工具会直接报错而不是显示 Infinity。想算大数请用任意精度计算器。

计算过程会被上传吗?

不会。全部计算在浏览器本地用 JavaScript 完成,不发网络请求,断网可用。

关键词:logarithm对数loglnlglog2换底公式change of baseexponential form指数式

同类工具