Проверьте, является ли число почти равным javascript

Я хочу знать, возможно ли это?

Предположим, что:

var a = 2592;
var b = 2584;
if(a nearly equal to b) {
// do something
}

Ответ 1

Так же.

var diff = Math.abs( a - b );

if( diff > 50 ) {
    console.log('diff greater than 50');
}

Это будет сравнивать, если абсолютная разница больше 50 с использованием Math.abs и простого сравнения.

Ответ 2

Здесь старый способ школы сделать это...

approxeq = function(v1, v2, epsilon) {
  if (epsilon == null) {
    epsilon = 0.001;
  }
  return Math.abs(v1 - v2) < epsilon;
};

так,

approxeq(5,5.000001)

истинно, а

approxeq(5,5.1)

является ложным.

Вы можете настроить проход в эпсилонках в явном виде в соответствии с вашими потребностями. Одна часть в тысячах обычно покрывает мои проблемы с округлением javascript.

Ответ 3

var ratio = 0;
if ( a > b) {
   ratio = b / a;
}
else {
    ratio = a / b;
}
if (ratio > 0.90) {
    //do something
}