检查数字是否几乎相等javascript

Muh*_*bar 10 javascript

我想知道是否有可能吗?

让我们假设:

var a = 2592;
var b = 2584;
if(a nearly equal to b) {
// do something
}
Run Code Online (Sandbox Code Playgroud)

jAn*_*ndy 21

像这样.

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

if( diff > 50 ) {
    console.log('diff greater than 50');
}
Run Code Online (Sandbox Code Playgroud)

如果绝对差值大于50使用Math.abs和简单比较,则可以进行比较.


小智 8

这是旧学校的方式......

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

所以,

approxeq(5,5.000001)
Run Code Online (Sandbox Code Playgroud)

是的,同时

approxeq(5,5.1)
Run Code Online (Sandbox Code Playgroud)

是假的.

您可以明确调整epsilons中的传递以满足您的需求.千分之一通常涵盖我的javascript舍入问题.

  • 这对于将浮点数与接受的答案进行比较非常方便。 (2认同)