为什么乘以一些数字有时会得到一个稍大的数字?

Why does multiplying by some numbers sometimes return a slightly larger number?

本文关键字:数字 一个 为什么      更新时间:2023-09-26

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

根据这个页面,字符串会自动截断末尾的0,所以我尝试了

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

但是它仍然以0结尾(2.800)

我不认为String会去掉后面的0s,但如果你将其转换为数字,那么它将忽略小数点后的后面的0s

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

您对toFixed函数的调用将返回String,而不是某种数字。并且在文档中特别提到这种String表示具有尾随零。下一个对toString的调用什么也不做。

相关文章: