当我在Chrome的稳定版本(版本32.0.1700.107)中评估这些语句中的任何一个时,我得到的值不是Infinity
。
Math.tan(90 * Math.PI / 180) 16331778728383844 Math.tan(Math.PI/2) 16331778728383844
这个问题的根源是什么?我确信Math.tan不会在我的代码中的其他地方重新分配新值。
答案 0 :(得分:2)
舍入错误。出于同样的原因,Math.cos(Math.PI/2)
不会给你0。
更新:实际上它在最新版本的Chrome / Node上给你0 - 但从这个open issue来看,它实际上被认为是V8中的回归。仍然(在问题和讨论中提到它),Math.sin/cos
是与实现相关的近似值,并且期望那些全面表现的行为是令人遗憾的,过于乐观。< / p>
答案 1 :(得分:1)
值得注意的是,在较新版本的Chrome中,与浮动相关的(可能是预期的)问题实际上并不存在。
目前在Firefox中并非如此,所以如果你在编写重要的代码时,请小心。