我的目标是拥有一个百分制/弧度转换工具。
var PI = 3.1415926535897936;
var PI_100 = 1.5707963267948968; // PI*0.5;
var PI_300 = 4.71238898038469; // PI*(1.5);
var D_PI = 6.283185307179587; // 2*pi
var centTo = 0.015707963267948967;
Chrome 评估以下表达式,如下所示:
PI*2 == D_PI >>> true
PI*0.5 = PI_100 >>> true
PI*1.5 = PI_300 >>> true
100*centTo == PI_100 >>> true
300*centTo == PI_300 >>> true
这些表达式在每个浏览器上是否总是true
?
或者我必须在比较时使用 epsilon?
var epsilon = 0.0000001;
Math.abs(a - b) < epsilon
最佳答案
无论使用哪种编程语言,除非检查无穷大或 NaN,否则使用 float 进行等价比较是不好的做法。始终最好检查一个值是否在某个公差范围内。
关于javascript - JavaScript 浮点运算中的跨浏览器一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149037/