数学表达式计算
安全计算数学表达式:支持 + - * / % ^ 与括号、函数(sin / sqrt / log…)、常量,实时求值并给出可读错误。
>_ 使用指南 · GUIDE
输入一个数学表达式(如 (3+5)*2^3 - 100/(4+6)),工具会实时求值并显示结果;出错时给出可读的错误提示,方便你定位哪里写错了。
支持的语法包括:四则运算 + - * /、取余 %、幂 ^、小括号嵌套,常用函数(sin、cos、tan、sqrt、log、abs、round 等)与常量(如 pi、e)。比普通计算器更「程序员友好」——可以直接把一段计算式整段贴进来求值。
常见用法:
- 整段求值:把要算的算式直接贴入,回车即得结果,含括号与幂
- 调用函数:用
sqrt(16)、sin(pi/2)、log(100)这类函数式计算 - 快速校验:写代码或核对数值时,临时算一个结果对照
求值通过安全递归下降解析器完成,绝不使用 eval 或动态执行,因此贴入任何内容都只是「算数」,不会执行有害代码;处理全程在浏览器本地完成。
>_ 常见问题 · FAQ
Q1 · 它和系统自带的计算器有什么区别?
普通计算器要一步步按按钮,本工具支持一次贴入整段含括号、幂、函数的表达式直接出结果,适合程序员把 (a+b)*c 之类的式子整段核对。它还提供可读的错误提示(哪个括号没闭合、哪个函数不认识),比在计算器上按错键好排查。
Q2 · 支持哪些函数和常量?
常用数学函数基本都有:三角函数 sin/cos/tan、开方 sqrt、对数 log/ln、绝对值 abs、取整 round/floor/ceil 等;常量含 pi、e。具体以页面内提示为准,遇到不支持的会给出可读报错,不会静默算错。
Q3 · 为什么强调「不使用 eval」?有区别吗?
eval 会把它收到的字符串当代码执行,若输入来自不可信来源,可能执行任意代码,存在严重安全风险。本工具用递归下降解析器把表达式当「数学语法」逐字符解析求值,只认识数字、运算符、括号与白名单函数,无法执行代码,因此贴入任何内容都是安全的。
Q4 · 运算优先级是怎么处理的?和常见数学一致吗?
一致:先算括号内,再算幂(^),然后乘除、取余,最后加减,同级从左到右。举例如 2+3*4 得 14(先乘后加)、(2+3)*4 得 20、2^3*2 得 16(先幂)。拿不准就加括号,显式表达意图最稳妥。
Q5 · 出错时提示怎么看?
提示会指向表达式里的问题,常见几类:括号不匹配(多或少)、不认识的内容(含非法字符或未知函数名)、运算不合法(如除零、对负数开方)。根据提示定位到对应片段修正后重算即可,不会只给一句笼统的「错误」。