科学计算器
在浏览器里直接算复杂算式:四则运算、乘方开方、三角函数、对数、阶乘与括号一次支持,输入即预览结果,纯本地计算不联网。
手机自带的计算器横屏才有科学键盘,电脑上更是只能现搜在线工具——不如把这一页存成书签。四则、幂与根、三角、对数、阶乘直接按算式写法输入,边敲边出结果,适合作业验算、开发调参时随手算一笔的场合;不用安装任何东西,关掉标签页也不留痕迹。
使用提醒:三角函数默认按角度制(DEG),需要弧度时切到 RAD,sin(30) 在两种模式下结果完全不同;表达式按标准优先级求值(括号最优先、乘方右结合),拿不准优先级就多写一层括号;超长算式建议分段验算,中间结果用记忆功能暂存;结果若出现 0.30000000004 这样的尾数,是二进制浮点的正常现象,不是算错。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 输入算式(支持括号嵌套与函数),实时预览结果。
- 三角函数按需切角度 / 弧度制(默认角度)。
- 乘方用 ^,阶乘用 !,对数 ln 与 lg 分开。
- 复制结果;复杂算式分段验算,中间值用记忆暂存。
计算原理与示例
键盘与输入
可以直接在输入框键入算式,也可以点下方键盘按钮;点 = 或按回车确认,输入过程中会自动预览结果。AC 清空全部,DEL 删掉最后一个字符。
支持哪些运算
支持 + − × ÷、乘方 ^、括号、阶乘 !、百分号 %,以及 sin/cos/tan、asin/acos/atan、ln/log/log2、sqrt 开方、常量 pi 与 e。乘号可以省略:2pi、2(3+4)、3sin(30) 都能识别。
DEG 与 RAD 怎么选
DEG 是角度制、RAD 是弧度制,默认 DEG,切换只影响三角函数与反三角函数,例如 DEG 下 sin(30)=0.5、RAD 下 sin(pi/2)=1。
结果精度与边界
结果按双精度浮点计算,显示 12 位有效数字并消除浮点尾差;超过 10^12 或小于 10^-9 的结果自动改用科学计数法。
代码示例
JavaScript 表达式求值的安全做法
// 不要直接 eval(安全风险),用 Function 构造 + 白名单清洗:
function calc(expr) {
if (!/^[0-9+\-*/(). ^%!a-z]+$/i.test(expr)) throw new Error("非法字符");
const js = expr
.replace(/\^/g, "**")
.replace(/sin\(/g, "Math.sin(")
.replace(/cos\(/g, "Math.cos(")
.replace(/ln\(/g, "Math.log(");
return Function("\"use strict\";return(" + js + ")")();
}
calc("2^10"); // 1024
Python ast 安全求值
import ast, operator
OPS = {ast.Add: operator.add, ast.Sub: operator.sub,
ast.Mult: operator.mul, ast.Div: operator.truediv,
ast.Pow: operator.pow}
def calc(node):
if isinstance(node, ast.Num): return node.n
if isinstance(node, ast.BinOp): return OPS[type(node.op)](
calc(node.left), calc(node.right))
raise ValueError("不支持的表达式")
calc(ast.parse("2**10", mode="eval").body) # 1024
常见问题
这个科学计算器和手机自带的有什么区别?
手机自带计算器通常只有基本运算,本工具在网页上直接提供三角函数、对数、乘方开方、阶乘与括号,不用安装 App,电脑和手机浏览器都能用。计算全部在浏览器本地完成,算式不会上传。
支持哪些运算符和函数?
运算符有 + − × ÷ 与乘方 ^(右结合),另有一元正负号和括号;函数有 sin cos tan asin acos atan sinh cosh tanh ln log lg log2 sqrt cbrt abs exp floor ceil round sign fact;常量 pi、e、tau;后缀 ! 与 %。乘号可省略,2pi、2(3+4)、3sin(30) 均合法。
DEG 和 RAD 有什么区别,该选哪个?
DEG 按「度」计算,RAD 按「弧度」计算,默认 DEG。日常做题、工程估算用 DEG;涉及 π 的数学推导用 RAD。切换会同时影响正三角与反三角,例如 DEG 下 asin(0.5)=30,RAD 下结果为 0.523598775598。
百分号 % 是怎么计算的?
本工具把 % 当作「除以 100」的后缀,所以 50% = 0.5、200+10% = 200.1。这与部分手机计算器的「加价」语义(200+10% 得 220)不同,做加价请直接写 200*(1+10%)。这条口径差异是计算器最常见的困惑点。
阶乘有什么限制?
阶乘只接受 0 到 170 的非负整数:负数与小数会提示超出定义域,171 及以上因为超出双精度浮点范围(约 1.8×10^308)也一并拒绝,避免返回 Infinity 这种无意义结果。
结果保留多少位精度?
计算按双精度浮点进行,显示时保留 12 位有效数字并抹掉浮点尾差,因此 0.1+0.2 显示 0.3 而不是 0.30000000000000004。超过 10^12 或小于 10^-9 的结果转为科学计数法,例如 2^100 = 1.2676506002e30。
为什么 tan(90) 会报错?
90° 处正切没有定义(此时 cos 90° = 0,相当于除以零),本工具直接提示超出定义域,而不是返回一个很大的数。同理 sqrt(-1)、ln(0)、asin(2) 也会报错,因为它们在实数范围内无解。
算式会被保存或上传吗?
不会上传。表达式由浏览器里的本地脚本求值,服务器只负责发送页面本身。计算历史保存在你自己浏览器的 localStorage,点历史区的「清空」即可删除;用无痕窗口则不会留下记录。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。