为什么Math.cos(90 * Math.PI / 180)得到6.123031769111 ......而不是零?

时间:2012-03-11 05:23:05

标签: javascript math geometry cosine

我将度数转换为弧度(度* Math.PI / 180),但为什么会出现以下情况:

Math.cos(90 * Math.PI/180)

产量6.123031769111 ......而不是零?

我正在尝试使用矩阵执行2D旋转,结果完全不合适。

3 个答案:

答案 0 :(得分:35)

的输出
Math.cos(90 * Math.PI/180)

6.123031769111886e-17

注意最后的e-17,这意味着这个数字是6.123 x 10 -17 。这是一个非常接近于0的数字,它实际上是0.它不同于0的原因是由于IEEE-754双格式中的舍入误差导致您无法获得π/ 2的精确表示并导致分钟舍入错误在余弦的计算中。

顺便说一下 - 当结果从6开始回来时我也很惊讶!只有在我看到最终结果之后才开始有意义。

希望这有帮助!

答案 1 :(得分:3)

6.123233995736766e-17

是一个非常小的数字,接近于零的科学记数法。由于舍入错误等原因,它并不完全为零。

答案 2 :(得分:2)

6.123233995736766e-17非常接近于零。只围绕数字。