简介
科学记数法是以简洁的方式书写冗长数字的有用速记法。虽然科学记数法一开始可能看起来很陌生,但了解科学记数法将帮助您了解浮点数的工作原理。
科学计数法中的数字采用以下形式:有效数 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 个有效数字)