科学计算器
支持三角函数、对数、指数、阶乘等科学计算功能
什么是科学计算器?
科学计算器是一款功能强大的在线数学计算工具,支持基础四则运算和高级科学函数计算。它提供三角函数(sin、cos、tan及其反函数)、对数函数(log、ln)、指数函数、幂运算、阶乘、绝对值等丰富的数学运算功能。
该计算器支持角度(DEG)和弧度(RAD)两种模式切换,内置圆周率π和自然常数e,并提供记忆存储功能(M+、M-、MR、MC),满足日常学习和工作中的各种科学计算需求。所有计算均在浏览器本地完成,保护您的数据隐私。
使用方法
使用方法
- 点击计算器面板上的数字和运算符按钮输入数学表达式
- 点击科学函数按钮(如 sin、cos、log)插入函数,使用括号控制运算优先级
- 点击等号按钮或按 Enter 键计算结果,表达式和结果将显示在顶部
- 使用 DEG/RAD 按钮切换度/弧度模式,使用 M+/M-/MR/MC 管理内存
计算技巧
- 使用三角函数前请检查 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。