数学表达式计算器 — 在线计算任意公式
使用 +、-、*、/、^、% 及括号,以及 sqrt、sin、cos、log 等函数输入数学表达式,结果即时显示。无需外部库,解析器完全在浏览器中运行,不向服务器发送任何数据。
工作原理
支持的运算和函数
计算器支持四种基本算术运算符(+、-、*、/),以及幂运算(^)和取模(%)。括号可以任意层次嵌套。
内置函数涵盖最常见的数学需求:sqrt(x) 和 cbrt(x) 计算平方根和立方根;abs(x) 求绝对值;sin(x)、cos(x)、tan(x) 以角度制计算三角函数;log(x) 计算自然对数,log2(x) 和 log10(x) 分别计算以 2 和 10 为底的对数;floor(x)、ceil(x)、round(x) 用于取整。常数 pi 和 e 可直接按名称使用。
表达式求值的实际用途
表达式计算器最擅长处理连续的计算链。无需在手机计算器上一步步按键、担心忘记中间结果,只需将整个计算过程写成一个表达式,即可直接看到答案。
单位换算、应力计算或统计公式等工程和科学任务,通常需要平方根、幂次和对数的组合。在这里输入完整公式,可以留下清晰的计算记录,而不像在实体计算器上按一串按钮那样难以追溯。
运算优先级
解析器遵循标准数学运算优先级:括号优先,然后是幂运算(右结合),接着是乘除取模(从左到右),最后是加减(从左到右)。这与学校教授的 BODMAS/PEMDAS 规则一致。
支持一元负号,例如 -3^2 按数学惯例计算为 -(3^2) = -9。若需要 (-3)^2 = 9,请显式添加括号。如有疑问,多用括号无妨——它们只会让表达式更易读。
常见问题
›为什么三角函数使用角度制而不是弧度制?
对日常使用来说,角度制更直观——大多数人用 0 到 360 来思考角度,而非 0 到 2π。解析器内部会自动转换,因此 sin(90) = 1 的结果符合预期。若需要弧度制,可乘以 pi/180:sin(1.5708) 的结果与 sin(90) 相同。
›log 和 log10 有什么区别?
log(x) 计算自然对数(底数 e ≈ 2.718)。log10(x) 使用底数 10,这是大多数人在非微积分场景下写 'log' 时的含义。log2(x) 使用底数 2,常见于信息论和计算机科学。
›^ 表示幂运算还是按位 XOR?
在本计算器中,^ 始终表示幂运算,而非按位 XOR。因此 2^10 = 1024。如需位运算,请使用其他工具。
›表达式中可以使用空格吗?
可以。解析器会忽略空格,因此 '2 ^ 10 + sqrt( 16 )' 与 '2^10+sqrt(16)' 等价。可在任何有助于提高可读性的地方添加空格。
›除以零会发生什么?
计算器会捕获除以零的情况并显示错误提示,而不会显示 Infinity 或 NaN。修正表达式后重试即可。
›结果显示几位小数?
最多显示 10 位有效小数,并按您所在语言环境的数字格式进行格式化。由于二进制浮点运算的特性,可能出现如 0.9999999999 而非 1 的微小误差,这是正常现象。
›这比在 JavaScript 中使用 eval() 更安全吗?
是的。本工具使用手写的递归下降解析器,仅识别列出的运算符和函数,从不调用 eval() 或任何等效机制,因此无法注入或执行任意代码。
›我输入的表达式会离开浏览器吗?
不会。解析器完全在您的浏览器中运行。您输入的任何内容都不会被发送到服务器或记录在任何地方。
相关工具
最后更新: