DevToolbox
跳到主内容

数学表达式计算器

29 个函数与常量,幂 / 阶乘 / 三角函数,角度弧度可切换

计算结果

输入表达式后实时显示结果,按 Enter 可记录到历史记录。

常用样例

8 个

常用函数

30 个
sin正弦(入参按当前角度制解释)
参数 1
cos余弦(入参按当前角度制解释)
参数 1
tan正切(入参按当前角度制解释)
参数 1
asin反正弦(结果按当前角度制输出)
参数 1
acos反余弦(结果按当前角度制输出)
参数 1
atan反正切(结果按当前角度制输出)
参数 1
atan2两参数反正切 atan2(y, x)
参数 2
sinh双曲正弦
参数 1
cosh双曲余弦
参数 1
tanh双曲正切
参数 1
sqrt平方根
参数 1
cbrt立方根
参数 1
abs绝对值
参数 1
ln自然对数(以 e 为底)
参数 1
log对数:默认以 10 为底,log(x, b) 可指定底数
参数 1–2
log2以 2 为底的对数
参数 1
log10以 10 为底的对数
参数 1
expe 的幂
参数 1
floor向下取整
参数 1
ceil向上取整
参数 1
round四舍五入,round(x, n) 可指定小数位
参数 1–2
trunc截断取整(丢弃小数部分)
参数 1
sign符号函数(-1 / 0 / 1)
参数 1
min取最小值
参数 1–64
max取最大值
参数 1–64
pow幂运算 pow(底数, 指数)
参数 2
hypot平方和的平方根
参数 1–64
gcd最大公约数
参数 2–64
lcm最小公倍数
参数 2–64
fact阶乘(非负整数)
参数 1

内置常量

pi圆周率 π
3.14159265
e自然常数 e
2.71828183
tau圆周常数 τ = 2π
6.28318531

关于数学表达式计算器

写代码时经常要临时算一个式子:等比数列的项、带宽换算出的毫秒数、某个角度对应的正弦值、两个大数的最大公约数。操作系统的计算器要么没有函数,要么需要一层层点按钮,而表达式直接写出来最快也最不容易错。本工具支持四则运算与括号、^ 与 ** 两种幂写法、! 阶乘、29 个常用函数(sin / cos / tan / asin / log / ln / sqrt / cbrt / gcd / lcm / hypot / round 等)以及 pi、e、tau 三个常量,还允许省略乘号写成 2pi 或 2(3+4)。

求值过程是自己实现的调度场算法(中缀转逆波兰再栈式求值),完全不使用 eval 与 new Function,因此粘贴任何内容都只可能得到一个数字或一条错误提示,不存在执行任意代码的风险。三角函数默认按弧度计算,切到「角度制」后 sin(30) 就是 0.5;反三角函数也会相应地按角度返回。优先级遵循数学惯例:幂右结合(2^3^2 = 512)、一元负号低于幂(-2^2 = -4)而高于乘除。

常见问题

为什么 -2^2 等于 -4 而不是 4?

因为一元负号的优先级低于幂运算,这是数学与 Excel、Python 等工具共同遵循的惯例:-2^2 被理解为 -(2^2)。想要得到 4 请写成 (-2)^2。反之在指数位置出现的负号属于指数本身,因此 2^-1 = 0.5。

用这个工具计算安全吗?

安全。本工具没有使用 eval,而是自己解析表达式并转成逆波兰式求值,因此输入里即使包含花括号、分号或函数名也无法执行任何代码。所有计算都在你的浏览器里完成,表达式不会离开本机。

sin(30) 为什么不是 0.5?

因为默认是弧度制,sin(30) 指的是 30 弧度(约 1718.9°),结果约 -0.988。把上方的角度制切换到「角度制(deg)」后,sin(30) 才会等于 0.5。编程语言里的三角函数几乎都是弧度制,本工具默认与之一致,避免复制表达式时产生偏差。