Jan*_*roň 4 javascript math floating-point
alert(Math.cos(Math.PI/2));
为什么结果不准确为零?这是不准确,还是某些实现错误?
Sve*_*ach 11
Math.PI/2
是实际值的近似值pi/2
.取这个近似值的精确余弦不会产生零.您获得的值是此精确值的近似值,直到基础浮点数据类型的精度.
使用一些任意精度库,您可以评估pi/2
双精度和精确值之间的差异
0.0000000000000000612323399573676588613032966137500529104874722961...
Run Code Online (Sandbox Code Playgroud)
由于余弦的斜率接近零,你可以预期近似值的余弦pi/2
近似等于这个差值,实际上也是如此.