90度的余弦为0。
我理解Javascript' flex-basis
需要弧度,所以我尝试过:
Math.cos
为什么这会产生Math.cos(90 * Math.PI / 180)
而不是0?
答案 0 :(得分:1)
6.123233995736766e-17
基本上是0
。它是0.00000000000000006123233995736766
。使用IEEE浮点数时,这种小错误是完全正常的。
解决方案是永远不要完全比较数字,但要比较它们是否在您期望的范围内。 EG。
var result = Math.cos(90 * Math.PI / 180);
if ( Math.abs( result - 0 ) < 1e-16 ) {
// Test passed, result is effectively 0
}
- 0
不执行任何操作,但更常见的是- x
是与x
进行比较的方式。您尝试与0
进行比较,因此我使用- 0
,但您可以将其关闭并获得相同的结果。