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

幂运算 / 开方计算器

两个面板:幂运算算 x^y(支持负数次方),开方求平方根、立方根与任意 n 次方根。负数的奇次开方也能算(如 ∛(-27) = -3),偶次根的负数会明确提示。

平方立方向来好算,真正的坑藏在负数里:负数能开奇次方根,偶次方根在实数里根本不存在,很多程序还会在这里悄悄返回一个错误值。这一页把幂和开方分成两个面板,负数的奇次根照算,偶次根无解时明说,不会被 NaN 糊弄。

口径提醒:负数的偶次根在实数范围内无解(√(−4) 无实数解),本工具明确提示而不是给 NaN;负数的奇次根有唯一实数解(∛(−27) = −3),但 Math.pow(−27, 1/3) 在 JS 里会返回 NaN——必须用 −Math.pow(27, 1/3) 的写法,本工具已正确处理。

使用步骤

  1. 幂面板:填底数与指数(支持负指数与小数指数)。
  2. 开方面板:填被开方数与根指数(2、3 或任意 n)。
  3. 负数奇次根正常出解;偶次根负数明确提示无实数解。
  4. 复制结果;复利、几何均值等场景按需选幂或根。

计算原理与示例

幂运算

幂运算:输入底数与指数。2^10 = 1024;负底数同样支持,(-2)³ = -8,(-2)² = 4。

平方、立方快捷键

平方 / 立方快捷键:点「x²」「x³」按钮把指数设为 2 或 3,不用手动输入。

开方运算

开方:输入被开方数与根指数。√2 ≈ 1.4142135624;∛(-27) = -3;-16 开 4 次方根无实数解,会提示超出定义域。

代码示例

JavaScript 负数开奇次根的正确写法

function nthRoot(x, n) {
  if (x < 0 && n % 2 === 1) return -Math.pow(-x, 1 / n);  // 奇次根
  if (x < 0) return NaN;                                  // 偶次根无实解
  return Math.pow(x, 1 / n);
}

nthRoot(-27, 3);    // -3(Math.pow(-27, 1/3) 会得 NaN)
nthRoot(16, 4);     // 2
Math.pow(2, -2);    // 0.25(负指数 = 倒数)

Python 负数开方 Python 的坑

(-27) ** (1 / 3)     # 复数!Python 3 返回复数

# 正确实数解:
import math
-math.pow(27, 1 / 3)   # -3.0
math.copysign(abs(-27) ** (1 / 3), -27)   # 通用写法

# 偶次根负数:math.sqrt(-4) 抛 ValueError(明确报错)

常见问题

负数可以开平方吗?

实数范围内不行:任何实数的平方都非负,所以 √(-4) 没有实数解(结果为虚数 2i,超出本工具范围)。但负数可以开奇次方根,如 ∛(-8) = -2。

大数会溢出吗?

结果超过 JavaScript 安全表示范围时(如 10^400)会提示超出定义域,常规学习与工程场景(10^300 以内)都能正常计算。

指数可以是小数或负数吗?

都可以。2^0.5 等价于 √2 ≈ 1.4142;2^-2 = 0.25。小数指数在数学上等价于开方运算。

幂运算的运算法则有哪些?

同底数幂相乘指数相加(a^m · a^n = a^(m+n)),相除指数相减,幂的乘方指数相乘((a^m)^n = a^(mn)),积的乘方可分配到各因子((ab)^n = a^n · b^n)。注意 (a + b)^n ≠ a^n + b^n。

平方根和立方根有什么区别?

平方根求「哪个数自乘等于它」(√9 = 3),负数没有实数平方根;立方根求「哪个数自乘三次等于它」(∛27 = 3),负数也有实数立方根(∛(−8) = −2)。偶次根要求被开方数非负,奇次根则没有这个限制。

0 的 0 次方等于多少?

数学上无统一定义,通常视为「未定义」;但在组合数学的二项式展开和多数编程语言中约定为 1(如 JavaScript 的 Math.pow(0, 0) 返回 1)。这类边界值建议按上下文约定处理。

分数指数和根式怎么对应?

a^(1/n) = ⁿ√a,a^(m/n) = ⁿ√(a^m)。例如 8^(2/3) = ∛(8²) = ∛64 = 4。分数指数的分母是开方的次数、分子是被开方数的幂次,这样就把幂运算和开方统一成了一种写法。

延伸阅读

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