简介

科学记数法是以简洁的方式书写冗长数字的有用速记法。虽然科学记数法一开始可能看起来很陌生,但了解科学记数法将帮助您了解浮点数的工作原理。


科学计数法中的数字采用以下形式:有效数 x 10指数

例如,在科学记数法1.2 x 10⁴中,1.2是有效数,4是指数。由于 10⁴ 的计算结果为 10,000,因此 1.2 x 104 的计算结果为 12,000。

按照惯例,科学记数法中的数字写在小数点前一位,其余位在小数点后。

考虑地球的质量。在十进制表示法中,我们将其写为5973600000000000000000000 kg. 这是一个非常大的数字(即使在 8 字节整数中也无法容纳)。它也很难阅读(要去一个一个的数零)。即使使用分隔符 (5,973,600,000,000,000,000,000,000),这个数字仍然难以阅读。

在科学记数法中,这将被写成5.9736 x 10²⁴ kg,这样更容易阅读。科学记数法的另一个好处是,只需比较指数,就可以更容易地比较两个非常大或非常小的数字的大小

因为在 C++ 中很难键入或显示指数,所以我们使用字母“e”(或有时是“E”)来表示等式的“乘以 10 的幂”部分。例如,1.2 x 10⁴将被写为1.2e4,并且5.9736 x 10²⁴将被写为5.9736e24

对于小于 1 的数字,指数可以是负数。该数字5e-2等价于5 * 10⁻², 即5 / 10², 或0.05。一个电子的质量是9.1093822e-31 kg


如何将数字转换为科学计数法

  • 你的指数从零开始。
  • 滑动小数点,使小数点左侧只有一个非零数字。
  • 每将小数点向左滑动一位,指数就会增加 1。
  • 每将小数点向右滑动一位,指数就会减 1。
  • 修剪掉任何前导零(在有效数字的左端)
  • 仅当原始数字没有小数点时,才修剪掉任何尾随零(在有效数字的右端)。我们假设它们不重要,除非另有说明。

例子 

有效数字('e'之前的部分)中的数字称为有效数字。有效位数定义了数字的精度。有效数字中的数字越多,数字就越精确。

开头:42030
小数点左滑 4 个空格:4.2030e4
没有要修剪的前导零:4.2030e4
修剪尾随零:4.203e4(4 个有效数字)
开始于:0.0078900
小数点右滑 3 个空格:0007.8900e-3
修剪前导零:7.8900e-3
不要修剪尾随零:7.8900e-3(5 个有效数字)
开始:600.410
小数点左移 2 个空格:6.00410e2
没有要修剪的前导零:6.00410e2
不要修剪尾随零:6.00410e2(6 个有效数字)