Ответ 1
Так же.
var diff = Math.abs( a - b );
if( diff > 50 ) {
console.log('diff greater than 50');
}
Это будет сравнивать, если абсолютная разница больше 50
с использованием Math.abs
и простого сравнения.
Я хочу знать, возможно ли это?
Предположим, что:
var a = 2592;
var b = 2584;
if(a nearly equal to b) {
// do something
}
Так же.
var diff = Math.abs( a - b );
if( diff > 50 ) {
console.log('diff greater than 50');
}
Это будет сравнивать, если абсолютная разница больше 50
с использованием Math.abs
и простого сравнения.
Здесь старый способ школы сделать это...
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.
var ratio = 0;
if ( a > b) {
ratio = b / a;
}
else {
ratio = a / b;
}
if (ratio > 0.90) {
//do something
}