7

我正在测试我的一些代码,在javascript中我添加了 .1+.2 它给了我 .30000000000000004 而不是 .3 。我不明白这一点。但是当我添加 .1+.3 时,它给了我 0.4。我用谷歌搜索它,发现它是关于双精度加法的。但我不知道它是什么。

4

3 回答 3

14

这是强制性链接:每个计算机科学家都应该知道的关于浮点运算的知识

基本上,有许多以 10 为底的数字无法以大多数计算机使用的浮点格式精确表示,因此您会遇到与您突出显示的问题类似的问题。

于 2011-05-23T06:26:12.087 回答
2

如果您无法对每个计算机科学家都应该了解的浮点运算知识保持清醒,请尝试使用 JavaScript 中特定于 javascript 的舍入

于 2011-05-23T07:48:33.050 回答
1

浮点数具有有限的精度,因为该数字存储在有限数量的位中。

您尝试存储的数字无法准确存储,因此使用了近似值。

每个计算机科学家都应该知道的关于浮点运算的知识

于 2011-05-23T06:26:28.323 回答