为什么乘以某些数字有时会返回稍大的数字?

时间:2014-07-28 03:02:23

标签: javascript floating-point

当我这样做时,例如,14 * 0.2,我得到2.8000000000000003而不是2.8 为什么会这样做,我该如何解决?

根据this页面,字符串自动关闭尾随0,所以我尝试了

var foo = 14 * 0.2;
console.log(foo.toFixed(3).toString());

但它仍然以尾随0(2.800)返回。

2 个答案:

答案 0 :(得分:1)

我认为String不会削减尾随0s,但是如果你将其转换为数字,那么它将忽略小数点后的0s尾随。

var foo = 14 * 0.2;
console.log(+foo.toFixed(3));

答案 1 :(得分:0)

您对toFixed函数的调用将返回String,而不是某种数字。此String表示在documentation中特别提及具有尾随零。下一次调用toString根本无效。