计算工具 · 数学计算

对数计算

log/lg/ln/任意底

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 67 次使用
lg / ln / log₂ / 任意底 · 定义域:x>0,b>0 且 b≠1
logb(x):底数 b 取多少,真数 x 是多少。
换底过程change of base
对数曲线 y = logb(x)logarithmic curve
当前点已在曲线上标出
同一真数 x 在常用底下的对数by base
对数运算性质速查identities

乘积法则 logb(MN)

logb(MN) = logbM + logbN

积的对数 = 对数的和。把乘法降为加法,是计算尺与对数表的原理。

商法则 logb(M/N)

logb(M/N) = logbM − logbN

商的对数 = 对数的差。把除法降为减法。

幂法则 logb(Mⁿ)

logb(Mⁿ) = n · logbM

幂的对数 = 指数乘以对数。把乘方降为乘法。

换底公式 logb(x)

logbx = logkx / logkb = ln x / ln b = lg x / lg b

任意底都可换成 ln 或 lg 计算,这正是本工具任意底的实现方式。

恒等式 特殊值

logb1 = 0 · logbb = 1 · b^(logbx) = x

1 的对数恒为 0;底自身的对数为 1;对数与指数互为逆运算。

互逆 与指数的关系

y = logbx ⇔ x = by

对数 logbx 回答「b 的几次方等于 x」。反对数就是已知 y 求 x = bʸ。

经典示例examples · 点击载入
就绪 · 实时联动,约 15 位有效数字
第一节

关于本工具

About

实验记录里写“lg(100)”,计算器却只能算 ln——对数底数不一致是数据处理中常见的卡顿点。这个工具直接处理 log、lg、ln 及任意底数的对数,输入数值与底数,即时返回精确结果。所有计算在浏览器本地完成,数据不上传服务器,适合科研数据校验、工程计算复核或学习时快速验证。

对比矩阵

维度本工具科学计算器 App手工查表
底数支持任意正底数(含 e/10)通常固定 lg/ln 或需切换模式仅常用底数(10/e)有表
输入范围正实数,无上限受 App 浮点精度限制(约 1e-308 ~ 1e308)表值范围有限(如 1~10)
精度双精度浮点(约 15-17 位有效数字)同双精度,但部分 App 截断显示通常 4-6 位有效数字
速度即时(浏览器内计算)即时(本地计算)需手动插值,数秒至数分钟
隐私数据不出浏览器,无上传本地计算,但部分 App 需联网权限完全离线,无数字足迹
离线可用是(纯前端,无需网络)多数需下载安装后离线是(纸质表)
费用免费,无内购免费版有广告 / 付费去广告需购买手册或打印
第二节

使用指南

Getting Started

使用步骤

  1. 1在「底数」输入框键入对数的底(如 10、e 或任意正数),底数默认显示为 10
  2. 2在「真数」输入框键入需要取对数的正数(如 100),真数必须大于 0
  3. 3点击「计算」按钮,结果区立即显示对数值(如 log₁₀100 = 2),支持 lg、ln 快捷切换
  4. 4如需换底,直接修改底数或真数,再次点击「计算」即更新结果,无需清空

输入输出示例

输入输出说明
log10(1000)3常规:常用对数(lg)的典型值,验证底数10的基本计算
ln(e^2)2常规:自然对数(ln)的典型值,验证底数e的恒等式
log2(1)0边界:任何底数的对数结果为零,验证工具对1的处理
log(0.5)-0.3010299956639812边界:真数小于1时结果为负,验证负数输出精度
log(0)错误:真数必须大于0易错:真数为零时数学上无定义,工具应明确提示而非返回NaN
log(-10)错误:真数必须大于0易错:负真数在实数域无意义,工具需返回错误而非复数结果
log(10000000000)10边界:大真数(10^10),验证工具对整数大数的处理能力
log(3.141592653589793)0.4971498726941338常规:无理数真数(π),验证浮点数精度和任意底数计算

常见错误对照

1.底数写成了小数或负数

✗ 错误log -2 8
✓ 修复log 2 8

对数底数必须为正数且不等于1。负底数或0底数在实数范围内无定义,工具会返回错误或 NaN。

2.真数输入了0或负数

✗ 错误ln 0
✓ 修复ln 1

对数函数定义域为 (0, +∞)。真数为0时结果为负无穷大(无实数解),负数则无实数对数。

3.混淆 ln 与 lg 的底数

✗ 错误lg 1000 期望等于 3(实际 ln 1000 ≈ 6.9)
✓ 修复lg 1000 = 3

lg 是以10为底,ln 是以 e 为底。两者底数不同,同一真数的结果差异很大,需按场景选用。

4.任意底对数输入顺序颠倒

✗ 错误log 8 2(期望计算 log₂8)
✓ 修复log 2 8

本工具底数在前、真数在后。若颠倒顺序,结果会变成 log₈2 ≈ 0.333,而非正确的 3。

5.对数值结果误当整数取整

✗ 错误log 3 9 = 2.0,直接写 2(忽略精度)
✓ 修复log 3 9 = 2(精确值)

多数对数结果是无理数(如 log₂3 ≈ 1.585),工具返回浮点数。若截断小数会丢失精度,影响后续计算。

6.未注意对数恒等式适用条件

✗ 错误logₐ(a^x) = x,但输入 a=1 时仍套用
✓ 修复底数 a 不能为 1

对数恒等式要求底数 a>0 且 a≠1。底数为1时 log₁(x) 无定义(除 x=1 外),工具会报错。

7.科学计数法输入格式错误

✗ 错误ln 1e5(工具不识别 e 为科学计数法)
✓ 修复ln 100000 或 ln 1e5(若支持科学计数法)

部分工具输入框只接受纯数字和运算符。若工具不支持科学计数法,需先展开为完整数字再计算。

第三节

工作原理

How It Works

核心公式

log_a(b) = ln(b) / ln(a)

变量说明

  • a底数,a > 0 且 a ≠ 1
  • b真数,b > 0
  • ln自然对数,底为 e ≈ 2.71828

示例

计算 log_2(8):ln(8) ≈ 2.07944,ln(2) ≈ 0.69315,log_2(8) = 2.07944 / 0.69315 ≈ 3.0000,验证 2³ = 8。

输入真数 x 与底数 a(a>0, a≠1; x>0)判断底数类型lg / ln / 自定义调用 Math.log 计算换底公式:ln(x)/ln(a)输出结果纯浏览器端计算,数据不出本地
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

import math # 自然对数 ln(100) print(math.log(100)) # 输出: 4.605170185988092 # 常用对数 lg(1000) print(math.log10(1000)) # 输出: 3.0 # 以 2 为底的对数 log2(8) print(math.log2(8)) # 输出: 3.0 # 任意底数: log_5(25) = ln(25)/ln(5) print(math.log(25, 5)) # 输出: 2.0
// 自然对数 ln(100) console.log(Math.log(100)); // 4.605170185988092 // 常用对数 lg(1000) console.log(Math.log10(1000)); // 3 // 以 2 为底 log2(8) console.log(Math.log2(8)); // 3 // 任意底数: log_5(25) = ln(25)/ln(5) console.log(Math.log(25) / Math.log(5)); // 2
package main import ( "fmt" "math" ) func main() { // 自然对数 ln(100) fmt.Println(math.Log(100)) // 4.605170185988092 // 常用对数 lg(1000) fmt.Println(math.Log10(1000)) // 3 // 以 2 为底 log2(8) fmt.Println(math.Log2(8)) // 3 // 任意底数: log_5(25) = ln(25)/ln(5) fmt.Println(math.Log(25) / math.Log(5)) // 2 }
#!/bin/bash # 使用 bc 计算对数,需指定精度 # 自然对数 ln(100) echo "l(100)" | bc -l # 输出: 4.6051701859880913680 # 常用对数 lg(1000): log10(x) = l(x)/l(10) echo "l(1000)/l(10)" | bc -l # 输出: 2.99999999999999999996 # 以 2 为底 log2(8): log2(x) = l(x)/l(2) echo "l(8)/l(2)" | bc -l # 输出: 2.99999999999999999992
fn main() { // 自然对数 ln(100) println!("{}", 100_f64.ln()); // 4.605170185988092 // 常用对数 lg(1000) println!("{}", 1000_f64.log10()); // 3.0 // 以 2 为底 log2(8) println!("{}", 8_f64.log2()); // 3.0 // 任意底数: log_5(25) = ln(25)/ln(5) println!("{}", 25_f64.log(5_f64)); // 2.0 }
第五节

常见问题

Q & A
这个工具能算任意底数的对数吗?比如 log_5(25) 这种?

可以。本工具支持任意正实数作为底数,不限于 10 或 e。输入时在「底数」框填 5、「真数」框填 25,结果会直接显示 2。如果底数不填,默认按常用对数(lg)计算。注意底数和真数都必须大于 0 且底数不能等于 1。

我输入 100 点计算,结果为什么是 2,不是 4.605?

因为默认计算的是常用对数 lg(100) = 2(底数为 10)。如果你预期的是 ln(100) ≈ 4.60517,需要手动在底数框输入 e(自然常数)或勾选「自然对数」选项。本工具界面上 lg 和 ln 有独立按钮,点一下就能切换,不需要手动改底数。

负数和零能算对数吗?我输入 -5 没反应。

在实数范围内,负数和零没有对数。对数函数的定义域是真数 > 0、底数 > 0 且底数 ≠ 1。输入 -5 或 0 时工具会提示「输入无效」,并保持结果区为空。如果你需要处理复数域的对数(如 ln(-1) = πi),本工具目前不支持,建议使用专业数学软件。

这个工具算的对数结果有多少位小数?够不够精确?

结果默认保留 6 位有效小数(如 ln(2) = 0.693147),实际内部采用浏览器原生 Number 类型双精度浮点数计算,精度约 15-16 位十进制有效数字。对于日常计算、工程估算、学生作业完全够用。如果你需要更高精度(比如 30 位),建议使用 WolframAlpha 或高精度计算库。

我手机上用,输入框太小了,底数总是输错怎么办?

本工具已适配移动端,输入框会随屏幕宽度自动拉伸。如果还是觉得小,可以尝试横屏使用,输入区域会更大。另外底数和真数框支持完整的复制粘贴,长按输入框粘贴已知数值即可,不用手动逐位敲。

这个计算过程是在我电脑上算的还是上传到服务器?

全部在本地浏览器内完成,不经过任何服务器。本工具是纯前端(FE)实现,JavaScript 代码直接调用 Math.log 等原生函数计算,你输入的任何数字都不会离开设备。断网状态下同样可用,适合处理敏感数据或离线使用。

log 和 lg 和 ln 到底有什么区别?我该用哪个?

log 是通用对数符号,底数需自行指定;lg 是底数为 10 的常用对数(如 lg 100 = 2);ln 是底数为 e(约 2.71828)的自然对数。日常选择:工程、化学中常用 lg;物理、微积分、复利计算中常用 ln;任意底数的场景用 log。本工具三个模式都支持,按需求点对应按钮即可。

为什么同一个数用 lg 和 ln 算出来结果不一样?哪个是对的?

两个都对,只是因为底数不同导致数值不同。例如 lg(100) = 2,ln(100) ≈ 4.605。它们可以通过换底公式相互转换:log_a(b) = log_c(b) / log_c(a)。本工具界面会明确显示当前使用的底数,结果区也会标注是 lg 还是 ln,避免混淆。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭