谷歌浏览器中的Tan为90(JavaScript)

时间:2014-06-27 17:27:25

标签: javascript google-chrome math

当我在Chrome的稳定版本(版本32.0.1700.107)中评估这些语句中的任何一个时,我得到的值不是Infinity

Math.tan(90 * Math.PI / 180)
16331778728383844

Math.tan(Math.PI/2)

16331778728383844

这个问题的根源是什么?我确信Math.tan不会在我的代码中的其他地方重新分配新值。

2 个答案:

答案 0 :(得分:2)

舍入错误。出于同样的原因,Math.cos(Math.PI/2)不会给你0。

更新:实际上它在最新版本的Chrome / Node上给你0 - 但从这个open issue来看,它实际上被认为是V8中的回归。仍然(在问题和讨论中提到它),Math.sin/cos是与实现相关的近似值,并且期望那些全面表现的行为是令人遗憾的,过于乐观。< / p>

答案 1 :(得分:1)

值得注意的是,在较新版本的Chrome中,与浮动相关的(可能是预期的)问题实际上并不存在。

目前在Firefox中并非如此,所以如果你在编写重要的代码时,请小心。

Output in Chrome 37