ToolAct工具行动

科学计算器

支持三角函数、对数、指数、阶乘等科学计算功能

0
DEG
计算历史
暂无计算记录

什么是科学计算器?

科学计算器是一款功能强大的在线数学计算工具,支持基础四则运算和高级科学函数计算。它提供三角函数(sin、cos、tan及其反函数)、对数函数(log、ln)、指数函数、幂运算、阶乘、绝对值等丰富的数学运算功能。

该计算器支持角度(DEG)和弧度(RAD)两种模式切换,内置圆周率π和自然常数e,并提供记忆存储功能(M+、M-、MR、MC),满足日常学习和工作中的各种科学计算需求。所有计算均在浏览器本地完成,保护您的数据隐私。

使用方法

使用方法

  1. 点击计算器面板上的数字和运算符按钮输入数学表达式
  2. 点击科学函数按钮(如 sin、cos、log)插入函数,使用括号控制运算优先级
  3. 点击等号按钮或按 Enter 键计算结果,表达式和结果将显示在顶部
  4. 使用 DEG/RAD 按钮切换度/弧度模式,使用 M+/M-/MR/MC 管理内存

计算技巧

  • 使用三角函数前请检查 DEG/RAD 模式;同一数值在度与弧度模式下结果可能差异很大。
  • 多步运算建议使用括号明确运算优先级,避免依赖心算顺序。

使用场景

通过按钮或键盘输入计算科学表达式使用数字、括号、幂运算、阶乘、百分比、π、e、三角函数、对数、平方根、绝对值和指数函数构建表达式。键盘输入涵盖常用运算符,Enter 键计算结果,Backspace 删除,Escape 清除。使用括号强制指定运算顺序,而不是依赖解析器的从左到右默认行为,因为隐式优先级可能在包含混合加法和除法的长表达式中悄然改变结果。
在角度制和弧度制之间切换三角函数DEG/RAD 切换改变了正弦、余弦、正切和反三角函数的计算方式。当在以角度为单位的学校题目和以弧度为单位的工程或微积分公式之间切换时非常有用,同一个角度读数完全不同。复制三角函数结果前请检查当前模式,因为反函数 asin、acos 和 atan 也以当前模式返回结果。
利用记忆功能和历史记录复用结果记忆控件支持 MC、MR、M+ 和 M-,最近的计算保存在可点击的历史记录列表中。选择历史记录中的结果会将其带回显示面板,方便快速继续后续计算。M+ 和 M- 累加到记忆寄存器中而非覆盖,这是在不将每个中间结果写回输入面板的情况下求一系列值之和的技巧。
在表达式中插入常数和阶乘点击 π 或 e 按钮,或使用 n! 输入阶乘,以计算组合、排列或 Stirling 近似等级数。阶乘函数增长极快,超过 170 的值会溢出 IEEE-754 双精度浮点数,因此在建模较长的组合链之前请检查引擎实际上限。DEG/RAD 模式仍需与公式预期匹配,特别是在涉及反三角结果时,所以在将值复制到报告前先切换模式。
通过实时表达式反馈捕获语法错误在等号返回结果之前,不匹配的括号、多余的运算符或不支持的符号会被高亮显示,这有助于在长表达式中发现遗漏的右括号。这对于学生逐步检查作业或工程师在将公式输入电子表格单元格前验证输入最有用,因为高亮会精确定位破坏解析的标记。将实时检查视为合理性层,而非目标系统上真正解析器的替代品。

技术原理

计算器使用调度场算法(shunting-yard)解析每个表达式,将中缀语法转换为后缀队列,正确处理运算符优先级和幂运算的右结合性。括号强制分组,一元负号被折叠到操作数中,常量如 pi 或 e 旁边的隐式乘法在后缀转换前会被规范化,以避免歧义标记。 数值计算完全运行在 IEEE 754 双精度浮点数上,提供约 15-17 位有效十进制数字,量级范围约 ±1.7976931348623157e308。经典的浮点陷阱仍然适用:0.1 + 0.2 计算结果为 0.30000000000000004,因为两个操作数都没有有限的二进制表示;长链的近等值减法中间结果也可能丢失精度。 三角函数、对数、指数和根号函数委托给 JavaScript Math 库。DEG/RAD 开关在调用 Math.sin、Math.cos 或 Math.tan 之前将角度乘以或除以 π/180,反函数则对结果进行反向转换。阶乘使用迭代乘积,因此 170! 接近双精度上限约 7.257e+306,171! 溢出为 Infinity。

  • 调度场解析器:将中缀转换为后缀,正确处理优先级(^ 右结合,一元负号折叠到操作数)
  • IEEE 754 双精度:约 15-17 位有效数字,最大约 1.79e+308,经典案例 0.1 + 0.2 = 0.30000000000000004
  • DEG/RAD 转换:调用 Math.sin/cos/tan 前将角度乘以 π/180,反函数对结果进行反向缩放
  • 阶乘溢出边界:170! 约 7.257e+306,171! 在 JavaScript 数值类型中返回 Infinity
  • 内置常量:Math.PI(3.141592653589793)和 Math.E(2.718281828459045)作为标记插入,而非每次重新解析
  • 超越函数:Math.log 是自然对数(ln),Math.log10 是以 10 为底的对数,Math.exp(x) 计算 e^x,Math.pow 处理 x^y
  • 记忆寄存器:M+ / M- 累加到单个数值变量中,MR 将其作为字面量推回输入,MC 清零

示例

角度模式与弧度模式下的三角函数

模式:DEG
sin(30)  = 0.5
cos(60)  = 0.5
tan(45)  = 1

模式:RAD
sin(pi/4)  = 0.70710678
cos(pi)    = -1
tan(pi/3)  = 1.73205081

对数、指数、e 与 pi

log(1000)    = 3        (以 10 为底)
ln(e)        = 1        (自然对数)
exp(1)       = 2.71828183
e^2          = 7.389056
2^10         = 1024
pi * 2       = 6.28318531

阶乘与组合数

5!    = 120
10!   = 3628800
170!  = 7.257e+306    (IEEE-754 溢出前的最大值)
171!  = Infinity

C(52,5) = 52!/(5!*47!) = 2598960  (扑克牌组合数)

记忆键:累加合计

步骤 1:输入 125.50,按 M+   -> 内存 = 125.50
步骤 2:输入 89.99,按 M+    -> 内存 = 215.49
步骤 3:输入 12.00,按 M-    -> 内存 = 203.49
步骤 4:按 MR                -> 显示 = 203.49
用途:汇总收据无需反复输入小计

常见问题

支持哪些函数?

标准四则运算、括号、平方根与高次根、幂运算、对数(log = 以 10 为底,ln = 自然对数)、指数函数、三角函数(sin/cos/tan 及其反函数)、双曲函数、阶乘、取模、绝对值,以及常数 π 和 e。部分版本还内置了统计辅助(均值、标准差)。

角度是用弧度还是度?

可以切换模式,默认为度。在度模式下 sin(30°) = 0.5;在弧度模式下 sin(30) ≈ −0.988。当前模式会显示在屏幕上——做三角运算前请先确认。

为什么 0.1 + 0.2 不等于 0.3?

JavaScript 使用 IEEE 754 双精度浮点数。0.1 和 0.2 在二进制中无法被精确表示,所以 0.1 + 0.2 = 0.30000000000000004。计算器在显示时会进行四舍五入,但对超越函数无法提供任意精度的十进制结果。

怎么计算长表达式?

直接整段输入即可,解析器会遵守运算符优先级和括号。比如写 2*(3+4)^2 而不是 2*3+4^2。函数旁的隐式乘法(如 2sin(30))能否正常解析视实现而定,显式插入 * 总是更稳妥。

支持复数或符号代数吗?

不支持。这是一个数值型科学计算器。处理复数、符号求导或方程求解,请使用 Wolfram Alpha、GeoGebra 或 SymPy 这类 CAS 工具。

计算是在本地完成的吗?

是的。表达式的解析与求值都在浏览器内完成,不会上传任何数据。历史记录(若有)保存在 localStorage 中,清除站点数据后即被清空。

科学函数的精度有多高?

标准 JavaScript Math 函数的精度约为 15-17 位有效十进制数字,对工程计算绰绰有余,但不足以支撑高精度符号运算。需要任意精度时,请使用 decimal.js 这类库或 CAS。