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

科学计数法转换器

输入任意数字(支持 123000、1.23e5、1.23 × 10⁵ 等写法)即可得到科学计数法、工程记法、e 记法与十进制展开;切到「运算」还能做科学计数法的加减乘除。

光速约三亿米每秒、阿伏伽德罗常数六点零二乘十的二十三次方——天文、化学、芯片制程里到处是写不下的数字,科学计数法就是为它们发明的。这里既能把任何写法的数转成标准形式、工程记法,也能反过来还原成普通数字,两个大数之间要加减乘除同样支持。

口径说明:科学计数法标准形式尾数在 [1, 10)(6.02 × 10²³);工程记法指数必须是 3 的倍数(22 × 10³ 而不是 2.2 × 10⁴),对应 k/M/G 词头;运算时加减先对齐指数、乘除尾数相乘指数相加——本工具按标准规则处理并规范化结果。

使用步骤

  1. 输入数字(多种写法都认),看四种记法结果。
  2. 工程记法看指数是否为 3 的倍数,对应 k/M/G 词头。
  3. 切「运算」模式做科学计数法四则运算。
  4. 复制结果;写论文用 × 10ⁿ 形式,写代码用 e 记法。

计算原理与示例

科学计数法怎么转换

转换规则只有一句:把小数点移到第一个非零数字之后,移了几位指数就是几,左移为正、右移为负。123000 → 1.23 × 10⁵(小数点左移 5 位);0.00045 → 4.5 × 10⁻⁴(右移 4 位)。整数也可以记为「位数减 1 就是指数」,如 299792458 是 9 位数,指数为 8。

工程记法与科学计数法的区别

工程记法与科学计数法的数值完全相同,唯一区别是指数必须是 3 的倍数,尾数落在 1~1000 之间,方便对应「千、百万、十亿」。同一个数:科学计数法 1.23 × 10⁵,工程记法 123 × 10³;阿伏伽德罗常数 6.022 × 10²³ 的指数 23 不是 3 的倍数,工程记法写作 602.214 × 10²¹。

为什么 0.1 + 0.2 在这里等于 0.3

加减法要先把指数对齐(化成同一个 n)再对尾数相加,乘除则直接算尾数、指数相加相减。本工具不用二进制浮点,而是把输入拆成「整数 × 10ⁿ」用 BigInt 精确计算,所以 0.1 + 0.2 得到严格的 0.3;除法保留 12 位有效数字并四舍五入,除不尽时标记为「近似」。

计算依据:科学计数法 a × 10ⁿ(1 ≤ |a| < 10),工程记法要求指数为 3 的倍数;十进制运算用 BigInt 精确实现(加减乘无损,除法保留 12 位有效数字并四舍五入);常量表数值取自 2019 年国际单位制(SI)定义值。

代码示例

JavaScript 规范化与工程记法

function toSci(n) {
  if (n === 0) return "0";
  const exp = Math.floor(Math.log10(Math.abs(n)));
  const mant = n / 10 ** exp;
  return { sci: mant + "e" + exp, exp, mant };
}

function toEng(n) {                       // 指数取 3 的倍数
  const exp = Math.floor(Math.log10(Math.abs(n)) / 3) * 3;
  return (n / 10 ** exp) + "e" + exp;
}

toEng(22000);   // "22e3"(对应 22k)

Python 格式化与解析

f"{6.022e23:.3e}"    # "6.022e+23"

# 工程记法(指数 3 的倍数):
from decimal import Decimal

n = 22000
exp3 = (len(str(abs(n))) - 1) // 3 * 3
n / 10 ** exp3, exp3      # (22.0, 3) → 22k

# 解析用户输入:float("1.23e5") 直接认

常见问题

科学计数法怎么还原成普通数字?

把尾数的小数点按指数移动:指数为正向右移,为负向左移,位数不够就补零。2.5 × 10³ → 2500;2.5 × 10⁻³ → 0.0025;6.022 × 10²³ → 6022 后面再补 20 个零。

有效数字是怎么数的?

从第一个非零数字开始数到最后一位。1.23 × 10⁵ 有 3 位有效数字,299792458 写成的 2.99792458 × 10⁸ 有 9 位。本工具会自动去掉末尾的零(3.0e8 记为 3 × 10⁸、1 位有效数字),因为省略的零是否算有效取决于测量精度,输入里无法判断。

工程记法和科学计数法有什么区别?

只有指数规则不同:工程记法要求指数是 3 的倍数、尾数落在 1~1000,好处是能直接读成「千 / 百万 / 十亿」。1.23 × 10⁵ 的工程记法是 123 × 10³;5.29177210903 × 10⁻¹¹ 的工程记法是 52.9177210903 × 10⁻¹²。

为什么一定要用科学计数法?

三个实际理由:一是极大极小值写得短(光速 299792458 m/s → 2.99792458 × 10⁸);二是乘除只需指数相加相减,估量级特别快(10⁸ × 10⁻³ = 10⁵);三是有效数字一眼可数,避免把 0.000000001 这类串数错零的个数。

0.1 + 0.2 为什么不等于 0.3?

因为计算机用二进制存小数,0.1 和 0.2 都只能被近似表示,双精度相加会得到 0.30000000000000004。本工具不用二进制浮点,而是把输入拆成「整数 × 10ⁿ」用 BigInt 精确运算,所以结果是严格的 0.3,1.1 × 1.1 也严格等于 1.21。

除法结果为什么标注「近似」?

1 ÷ 3 = 0.333… 是无限循环小数,有限位写不完。本工具保留 12 位有效数字并四舍五入,因此标注「近似」;能除尽的结果(1 ÷ 8 = 0.125、10 ÷ 4 = 2.5、1 ÷ 1000000 = 1 × 10⁻⁶)会标注「精确」。

指数最大能输入到多少?

单个输入的指数限制在 ±5000,运算结果的指数可以超出(1e2000 × 1e2000 = 1 × 10⁴⁰⁰⁰)。超过 ±5000 会提示「指数超出可处理范围」——这是防止构造 10 万位整数把页面卡死的保护,而不是数学限制。

可以直接粘贴论文里的 1.23 × 10⁵ 吗?

可以。上标数字、乘号(× 或 *)、^ 号、e 记法、千分位逗号、全角减号都会被自动识别:1.23 × 10⁵、1.23e5、1.23×10^5、1.23*10^5 四种写法结果完全一致。

延伸阅读

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