Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript将0.1添加到0.2会导致0.300000000004_Javascript_Settimeout - Fatal编程技术网

Javascript将0.1添加到0.2会导致0.300000000004

Javascript将0.1添加到0.2会导致0.300000000004,javascript,settimeout,Javascript,Settimeout,可能重复: 我有以下代码来制作动画(doIt制作动画,但不相关) 为什么会这样?我要的是0.3,不是那么接近的数字。不幸的是,这种情况在每次迭代中都会发生。这是意料之中的。计算机上的操作之所以如此,是因为它们存储在计算机内部的方式。有关更多信息,我建议您阅读 将无穷多个实数压缩为有限位数 需要近似表示。虽然有无限的 许多整数,在大多数程序中,整数计算的结果可以 存储在32位中。相反,给定任何固定的位数, 大多数实数计算会产生 无法使用那么多位精确表示。因此 浮点计算的结果通常必须按顺序四舍五入

可能重复:

我有以下代码来制作动画(doIt制作动画,但不相关)

为什么会这样?我要的是0.3,不是那么接近的数字。不幸的是,这种情况在每次迭代中都会发生。

这是意料之中的。计算机上的操作之所以如此,是因为它们存储在计算机内部的方式。有关更多信息,我建议您阅读

将无穷多个实数压缩为有限位数 需要近似表示。虽然有无限的 许多整数,在大多数程序中,整数计算的结果可以 存储在32位中。相反,给定任何固定的位数, 大多数实数计算会产生 无法使用那么多位精确表示。因此 浮点计算的结果通常必须按顺序四舍五入 以适应它的有限表示。这个舍入误差是最大的 浮点运算的特点


类似的问题会被问到很多。请参阅。

要输出
0.3
,您可以使用
toFixed
,正如@Oleksi所指出的,浮点数有轻微的计算错误

console.log((0.1 + 0.2).toFixed(1)); // 0.3

问题也出现在几分钟前(答案相同,复制粘贴):否决投票没有帮助,它没有出现在类似问题部分。。每种语言都有很多例子,但每一种都被否决了。。为什么?不是我的反对票。将鼠标悬停在向下投票图标上,您会看到“此问题不显示任何研究成果;它不清楚或没有用处(再次单击以撤消)”。这个问题已经被问过好几次了,通过在搜索引擎/Google中输入关键字很容易找到,并且出现了几个副本。如果你意识到这本质上是一个重复,你应该投票作为一个重复关闭,而不是张贴一个答案。。。
i: 0 
i: 0.1 
i: 0.2 
i: 0.30000000000000004
i: 0.4 
i: 0.5 
i: 0.6 
i: 0.7 
i: 0.7999999999999999 
i: 0.8999999999999999 
i: 0.9999999999999999 
i: 1.0999999999999999 
console.log((0.1 + 0.2).toFixed(1)); // 0.3