CCalculate.Studio

🧮 科学计算器

这个科学计算器按照标准的运算顺序(先乘除后加减等)对你输入的数学表达式求值。它支持弧度或角度制的三角函数、平方根和立方根、对数、指数、取整函数,常数 π、e 和 τ,以及运算符 + - * / % ^ 和括号。例如,在弧度模式下,sin(pi/6) + sqrt(16) * 2^3 求值为 0.5 + 4 × 8 = 32.5。

最后审核: 2026-07-07
Add as preferred on Google

支持的函数与常数

下表列出了解析器接受的全部内容;出于安全考虑,任何其他记号都会被拒绝。

类别可用内容示例
三角函数sin, cos, tan, asin, acos, atansin(pi/2) = 1(弧度制)
方根与绝对值sqrt, cbrt, abssqrt(16) = 4; cbrt(27) = 3
对数与指数ln, log (以 10 为底), log2, explog(1000) = 3; ln(e) = 1
取整floor, ceil, roundfloor(2.7) = 2; ceil(2.1) = 3
双参数函数min(a, b), max(a, b)max(3, 7) = 7
常数pi, e, tautau = 2 x pi = 6.283185...
运算符+ - * / % ^ 以及括号2^10 = 1024; 10 % 3 = 1
  • 角度单位只影响三角函数:角度模式会把 sin/cos/tan 的输入从角度转换,并把 asin/acos/atan 的结果以角度返回。
  • 这里的 log 表示以 10 为底的对数;自然对数请用 ln,以 2 为底的对数请用 log2。
  • 该解析器是一种安全白名单机制:表达式从不会传给 eval,无法识别的标识符会使整个表达式无效,而不是被猜测处理。
  • 结果受双精度浮点运算的限制(约 15-16 位有效数字);像 0.1 + 0.2 得到 0.30000000000000004 这样的微小舍入误差是浮点数运算固有的现象。

这个科学计算器是什么?

科学计算器能计算超出基本四则运算的数学表达式:三角函数、对数、指数、方根和常数。这个计算器接受一整段文本形式的表达式,并按照标准的运算顺序求值——先括号,再指数,然后乘法、除法与取余,最后加法与减法。

支持的函数:sin、cos、tan 及其反函数 asin、acos、atan;sqrt(平方根)和 cbrt(立方根);abs(绝对值);ln(自然对数)、log(以 10 为底的对数)、log2(以 2 为底的对数)和 exp(e 的幂);floor、ceil 和 round(取整函数);以及双参数函数 min(a, b) 和 max(a, b)。支持的常数:pi(3.14159…)、e(2.71828…)和 tau(2 × pi)。支持的运算符:+ - * / %(取余)和 ^(幂),以及括号和一元负号。

表达式由一个安全的白名单解析器求值:输入会依据固定的允许函数、常数、数字和运算符列表进行分词,任何不在列表中的内容都会被拒绝。计算器从不把你的输入传给 JavaScript 引擎的 eval,因此任意代码永远不会被执行——未知的名称只会导致没有结果,而不会被执行。

角度单位设置只影响三角函数:在角度模式下,sin、cos、tan 的参数会被解释为角度,asin、acos、atan 的结果也会以角度返回。在弧度模式(数学中的默认约定)下,所有角度都以弧度为单位。

如何使用这个科学计算器

  1. 输入你的表达式,例如:sin(pi/6) + sqrt(16) * 2^3。函数参数放在括号内;乘法必须用 * 明确写出(写作 2*pi,而不是 2pi)。
  2. 在计算三角函数之前,先选择角度单位——弧度或角度。角度模式下 sin(30) 是 0.5;弧度模式下 sin(30) 约为 −0.988。
  3. 查看结果。数值极大或极小的结果会以科学 e 记法显示。
  4. 如果没有出现结果,检查是否有括号不匹配、未知的函数名,或者省略了乘号——白名单解析器会拒绝任何它无法识别的内容。

运算顺序(PEMDAS)

Order: parentheses > functions > ^ > unary minus > * / % > + -
Example: sin(pi/6) + sqrt(16) * 2^3 = 0.5 + 4 * 8 = 32.5
Right associativity: 2^3^2 = 2^9 = 512
Remainder: 10 % 3 = 1 (% is modulo, not percent)

表达式按以下顺序求值:括号(由内到外),然后是函数运算,接着是幂运算 ^(右结合),然后是一元负号,接着是从左到右的 * / %,最后是从左到右的 + -。这与数学中教授的标准 PEMDAS/BODMAS 惯例一致。

演示:弧度模式下的 sin(pi/6) + sqrt(16) * 2^3。第一步——括号和函数:pi/6 = 0.523599,sin(0.523599) = 0.5;sqrt(16) = 4。第二步——指数:2^3 = 8。第三步——乘法先于加法:4 * 8 = 32。第四步——加法:0.5 + 32 = 32.5。

有两点值得注意:幂运算是右结合的,所以 2^3^2 = 2^(3^2) = 2^9 = 512,而不是 (2^3)^2 = 64;而 % 运算符是取余(模)运算,所以 10 % 3 = 1——它不表示百分比。

常见错误

  • 在错误的角度单位下计算三角函数:sin(30) 只有在角度模式下才是 0.5;在弧度模式下 sin(30) 约为 −0.988。
  • 写出省略乘号的表达式,如 2pi 或 3(4+1)——解析器要求明确写出 *:2*pi、3*(4+1)。
  • 以为 % 表示百分比:它其实是取余运算符,所以 50 % 8 = 2;要计算 8 的 50%,应写作 0.5*8。
  • 误解运算符优先级:−3^2 会先计算幂运算,得到 −9;要得到 9,应写作 (−3)^2。
  • 以为幂运算是左结合的:2^3^2 是 2^(3^2) = 512,而不是 64。

常见问题

这个科学计算器支持哪些函数?

三角函数 sin、cos、tan 及其反函数 asin、acos、atan;方根函数 sqrt 和 cbrt;abs;对数函数 ln(自然对数)、log(以 10 为底)和 log2;exp;取整函数 floor、ceil 和 round;双参数函数 min 和 max;常数 pi、e 和 tau;以及运算符 + - * / % ^ 和括号。任何不在此列表中的内容都会被白名单解析器拒绝。

怎样在角度制和弧度制之间切换?

使用角度单位选择器。在角度模式下,sin、cos、tan 会把它们的参数解释为角度,反函数也会返回角度;在弧度模式(数学中的默认约定)下,一切都以弧度为单位。同样的表达式在两种模式下可能给出不同的结果:sin(30) 在角度制下是 0.5,但在弧度制下约为 −0.988。

计算器采用怎样的运算顺序?

标准的 PEMDAS 惯例:先括号,然后函数,接着幂运算(右结合),然后一元负号,接着从左到右的乘法、除法和取余,最后是从左到右的加法和减法。所以 1 + 2 * 3^2 = 1 + 2 * 9 = 19,而 2^3^2 = 2^9 = 512。

为什么我的表达式没有返回结果?

解析器只接受白名单中的记号。常见原因包括:省略乘号(应写作 2*pi,而不是 2pi)、括号不匹配、未知的函数名(支持的列表是固定的)、无效的数学运算(比如对负数开平方,或产生无穷大的除法),或者表达式长度超过 300 个字符。这种拒绝是有意为之的——计算器从不猜测,也从不执行任意代码。

% 运算符是做什么的?

它计算的是除法的余数(取模运算):10 % 3 = 1,因为 10 = 3 × 3 + 1。它并不计算百分比。要计算百分比,应使用乘法:80 的 15% 是 0.15*80 = 12。

在表达式输入框中随便输入内容安全吗?

安全。输入内容会经过一个手写的白名单分词器和调度场算法求值器处理;它从不会传给 JavaScript 的 eval 或任何代码执行机制。任何超出固定白名单(数字、列出的函数、常数和运算符)的记号,都会导致整个表达式被直接拒绝。

参考文献

  1. ISO 80000-2:2019. Quantities and units — Part 2: Mathematics (standard notation for functions, logarithms and angular measure).
  2. Abramowitz M, Stegun IA (eds). Handbook of Mathematical Functions. National Bureau of Standards, 1964 (definitions of elementary transcendental functions).
  3. Weisstein, Eric W. "Precedence." MathWorld — A Wolfram Web Resource. mathworld.wolfram.com.

基础数学 · 全部计算器

相关计算器