数学计算 本地计算 开箱即用 内置示例 不留痕迹

科学计算器

在浏览器里直接算复杂算式:四则运算、乘方开方、三角函数、对数、阶乘与括号一次支持,输入即预览结果,纯本地计算不联网。

手机自带的计算器横屏才有科学键盘,电脑上更是只能现搜在线工具——不如把这一页存成书签。四则、幂与根、三角、对数、阶乘直接按算式写法输入,边敲边出结果,适合作业验算、开发调参时随手算一笔的场合;不用安装任何东西,关掉标签页也不留痕迹。

使用提醒:三角函数默认按角度制(DEG),需要弧度时切到 RAD,sin(30) 在两种模式下结果完全不同;表达式按标准优先级求值(括号最优先、乘方右结合),拿不准优先级就多写一层括号;超长算式建议分段验算,中间结果用记忆功能暂存;结果若出现 0.30000000004 这样的尾数,是二进制浮点的正常现象,不是算错。

使用步骤

  1. 输入算式(支持括号嵌套与函数),实时预览结果。
  2. 三角函数按需切角度 / 弧度制(默认角度)。
  3. 乘方用 ^,阶乘用 !,对数 ln 与 lg 分开。
  4. 复制结果;复杂算式分段验算,中间值用记忆暂存。

计算原理与示例

键盘与输入

可以直接在输入框键入算式,也可以点下方键盘按钮;点 = 或按回车确认,输入过程中会自动预览结果。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,点历史区的「清空」即可删除;用无痕窗口则不会留下记录。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。