给出以下代码:
const value = 1;
Math.sin(2 * Math.PI * value).toFixed(5);
当"-0.00000"
之前的值为.toFixed(5)
时为什么返回-2.4492935982947064e-16
?
答案 0 :(得分:3)
该数字采用科学计数法。
e-16表示数字左侧有16个0。
-2.4492935982947064e-16
是真的
-0.00000000000000024492935982947064
运行到Fixed(5)时,您最终得到5个小数位,全为0。
答案 1 :(得分:0)
您提供的数字-2.4492935982947064e-16
用科学计数法表示。该数字等于-2.4492935982947064 × 10^-16
,在扩展后的数字恰好是-0.00000000000000024492935982947064
。
答案 2 :(得分:0)
-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))