鉴于此代码:
const value = 1;
Math.sin(2 * Math.PI * value).toFixed(5);
"-0.00000"
当之前的值.toFixed(5)
是时,为什么会返回-2.4492935982947064e-16
?
鉴于此代码:
const value = 1;
Math.sin(2 * Math.PI * value).toFixed(5);
"-0.00000"
当之前的值.toFixed(5)
是时,为什么会返回-2.4492935982947064e-16
?
该数字采用科学计数法。
e-16 表示数字左侧有 16 个 0。
-2.4492935982947064e-16
是真的
-0.00000000000000024492935982947064
当你运行 toFixed(5) 时,你会得到 5 个小数位,它们都是 0。
你提供的数字-2.4492935982947064e-16
是科学计数法。-2.4492935982947064 × 10^-16
该数字将等于-0.00000000000000024492935982947064
扩展后的数字。
-2.4492935982947064e-16
是-2.4492935982947064 * Math.pow(10,-16)
,所以小数点后 5 位不足以看到与 0 不同的东西
const value = 1;
let result = Math.sin(2 * Math.PI * value);
console.log(result)
console.log(result.toFixed(20))
console.log(result.toFixed(5))