首页>美国>教育 | 学习>正文

Floating Point Math | 浮点类型运算

国家: 美国 类型: 教育 | 学习

标签: 浮点运算

英文网站: https://0.30000000000000004.com/ 进入网站

Floating Point Math

您的语言没有损坏,它正在做浮点运算。计算机本身只能存储整数,因此它们需要某种方式来表示十进制数。这种表示并不完全准确。这就是为什么,往往不是, 0.1 + 0.2 != 0.3。

为什么会这样?

这实际上是相当有趣的。当你有一个以 10 为底的系统(如我们的系统)时,它只能表示使用基数的质因子的分数。10 的质因数是 2 和 5。所以 1/2、1/4、1/5、1/8 和 1/10 都可以清楚地表示,因为分母都使用 10 的质因数。相比之下,1 /3、1/6、1/7 和 1/9 都是重复小数,因为它们的分母使用质数因子 3 或 7。

在二进制(或以 2 为底)中,唯一的质因数是 2,因此您只能清楚地表达分母只有 2 作为质因数的分数。在二进制中,1/2、1/4、1/8 都可以清楚地表示为小数,而 1/5 或 1/10 将是重复的小数。所以 0.1 和 0.2(1/10 和 1/5)虽然在以 10 为底的系统中是干净的小数,但在计算机使用的以 2 为底的系统中是重复小数。当您对这些重复的小数进行数学运算时,您最终会得到剩余,当您将计算机的 base-2(二进制)数字转换为更易于人类阅读的 base-10 表示时,这些剩余会结转。