Моя цель состоит в том, чтобы иметь инструмент перевода с центрикой степени/радиан.Совместимость с несколькими браузерами в JavaScript с арифметикой с плавающей запятой
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
на каждом браузере?
Нужно ли использовать эпсилон при сравнении?
var epsilon = 0.0000001;
Math.abs(a - b) < epsilon
Просто интересно, почему вы не использовали 'Math.PI'? –
Я бы посоветовал вам спуститься по маршруту эпсилон сейчас, пока вы не будете совершены, если вы собираетесь делать математику на этом уровне –
@LeshaOgonkov Потому что Math.PI - это 3.141592653589793, и если вы сделали D_PI = 2 * Math.PI, тогда D_PI = = 2 * Math.PI ЛОЖНО !!! Но «мой» PI * 2 == «мои» результаты D_PI верны .... – civiltomain