首页 › 数学计算 › 科学计算器
🔧

科学计算器

科学表达式计算器,幂与阶乘、三角与对数、角度弧度切换、Ans 记忆与一行一式批量求值

① 表达式求值

三个约定:「%」就是把数字除以 100,所以 200×10% = 20,要「涨 10%」请写 200*(1+10%);相邻的量会自动相乘,2pi、3(4+1)、(2)(3) 都能算;函数括号可省,sin30 等同于 sin(30)。数字里的千分位逗号可用,如 1,000/8。

② 历史记录(点击任意一条可回到输入框)
还没有计算记录,算一次就会出现在这里
③ 一批表达式一起算

批量计算沿用 ① 里的角度单位与保留位数设置;Ans 在批量模式下取上一次单条计算的结果。每行必须是完整表达式,不能只写运算符。

工具介绍

普通计算器算不了 12!/(5!*7!),在线语言里的 eval 又不敢用。这个工具把表达式解析成词法与后缀式再求值,输入什么就算什么,并把每一步口径写清楚:

  • 完整表达式求值:四则、括号、幂、阶乘、百分号、取余混写都可以,2+3*4 得 14,(2+3)*4 得 20,(2+3)*sqrt(16)/2^3 得 2.5
  • 科学与工程写法:1e3+1 得 1001、2E-2 得 0.02、1,000,000/8/7 认千分位逗号得 17857.1428571
  • 可以省括号与乘号:2pi = 6.28318530718、3(4+1) = 15、sin30 等同 sin(30)、√9 = 3、∛(-27) = -3
  • 角度制与弧度制一键切换:DEG 下 sin(30) = 0.5、acos(0.5) = 60;切到 RAD 后 sin(30) = -0.988031624093,反三角的输出单位也同步变化
  • 结果的多重表达:同时给出千分位结果、双精度原始值、科学计数法、整数部分、小数位数、三种取整与最简分数近似
  • Ans 与记忆键:Ans 引用上一次结果,存 MS / 取 MR / 清 MC 做分步运算,「把结果接进新表达式」可直接续算
  • 历史记录:最近 20 条算式与结果,点任意一条回到输入框改数字重算
  • 批量求值:一行一个表达式一起算,某一行出错不影响其他行,出错原因写在同行说明列
  • 异常都讲原因:括号未闭合会说明还差几个右括号,1/0、√-4、ln(0)、tan(90)、171!、(-8)^0.5 各有对应的提示

使用场景

  • 把长算式一次写清:组合数、等比数列求和、复利终值这类链式按键算不了的式子
  • 验证公式:先手算再让工具复核,避免括号与优先级写错
  • 批量核对一组数据:从表格或笔记里粘一批表达式逐行出结果
  • 教学演示:解释幂右结合、负号与开方的优先级、角度制与弧度制的差别
  • 工程与统计:双曲函数、以 2 为底的对数、取余与阶乘混合使用

支持的写法

写法含义实测结果
2+3*4先乘后加14
2^10 与 2**10幂,两种写法等价1024
2^3^2幂右结合,先算 3^2512(不是 64)
-2^2幂优先于一元负号-4,写 (-2)^2 才是 4
5! 与 fact(5)阶乘120
10% 与 200*(1+10%)百分号即除以 1000.1 与 220
100 mod 7取余2
12!/(5!*7!)组合数直接写792
3(4+1)、2pi、(2)(3)相邻的量自动相乘15、6.28318530718、6
1,000/8千分位逗号125
sin30 + 1无括号函数只吃掉紧跟的那个数1.5(不是 sin(31))
ans*2引用上一次结果上一次为 21 时得 42

运算优先级由先到后

  • 括号 ( ):改变优先级最直接的方式,未闭合时会提示还差几个右括号
  • 后缀运算 ! %:紧贴前面的数,2^3! 是 2^6 = 64
  • 幂 ^:右结合,比一元负号更紧
  • 一元正负号 -3、+5:可以连续写,3 - -2 = 5
  • 乘、除、取余 * / mod:含隐式乘法,左结合
  • 加、减 + -:最低,左结合,100-20-30 = 50

函数与常数

类别名称已核对的例子
三角与反三角sin cos tan asin acos atanDEG:cos(60)+sin(30) = 1、asin(0.5) = 30
双曲sinh cosh tanhcosh(0) = 1、sinh(0) = 0
幂与根^ ** sqrt √ cbrt ∛9^(1/2) = 3、sqrt(144)+3^2 = 21
对数与指数ln log lg log10 log2 explog(1000)+ln(e) = 4、log2(1024) = 10
取整与符号abs round floor ceil signround(2.5)+floor(2.5)+ceil(2.5) = 8
阶乘与取余! fact mod5!+3! = 126、10 mod 3 = 1
角度换算degrees radiansdegrees(pi/3) = 60、radians(180) = pi
常数pi π e phi φ tauπ = 3.14159265359、e = 2.71828182846、φ = 1.61803398875、tau = 6.28318530718

常见问题

  • 为什么 -2^2 等于 -4?数学里 −x² 表示 −(x²),幂比一元负号先算。想让负数自乘要写 (-2)^2 = 4;同一条规则也解释了 2^3^2 = 512 而不是 64
  • 为什么结果 0.3,原始值却是 0.30000000000000004?这是双精度浮点的固有表示误差。自动模式取 12 位有效数字后再归一,把噪声压掉;sqrt(2)*sqrt(8) 显示 4 而原始值是 4.000000000000001,同一原因。要看真实误差请对照「原始值」那一行
  • 角度制还是弧度制?默认角度制,sin(30) = 0.5;选弧度制后 30 被当作 30 弧度,sin(30) = -0.988031624093。反三角函数的输出单位跟着走,acos(0.5) 在角度制下是 60;degrees 与 radians 这两个函数不受开关影响,始终按弧度定义换算
  • sin(pi) 为什么不是 0?结果是 1.224647e-16。π 只能用近似值表示,而正弦在 π 附近的变化率约为 −1,输入误差几乎原样变成输出误差。判断是否为 0 要设容差,而不是期待整数
  • 阶乘最大能算到几?170! = 7.257416e+306,已经贴近双精度上限约 1.8e308,171! 会直接报溢出;小数与负数阶乘不做(那需要 Gamma 函数与复数支持)。组合数这类整数比值可以在溢出前先相消,写成 12!/(5!*7!) = 792 是安全的
  • 百分号是什么口径?把数除以 100:10% = 0.1,200×10% = 20。要「涨 10%」得写 200*(1+10%) = 220;每月涨 10% 一年下来的总涨幅是 (1+10%)^12-1 = 2.13842837672,即 213.84%
  • 它会不会执行我输入的代码?不会。解析流程是先词法切分、再补隐式乘法、然后用调度场算法转成后缀式逐条求值,全程没有 eval 也没有动态构造函数,字母只认已登记的函数名与常数,其余一律拒绝并指出位置
  • 哪些写法不支持?不支持多参数函数(要底数就写 log2(8) 或 log(8)/log(2))、不支持变量赋值与自定义函数、不处理复数与无穷符号、不支持求和连乘记号;1e3 会被识别为 1000,想要 1×e×3 请写 1*e*3

配套工具:要把结果写回精确分数做四则运算用 分数计算,算占比与涨跌幅用 百分比计算,把 1000*(1+4.7%)^7 = 1379.19848604 这类终值展开成逐年明细用 复利计算器,换算量纲用 单位换算。表达式与结果都只在浏览器里处理,不上传服务器。