检查变量值是否彼此接近

时间:2014-02-17 22:03:32

标签: c# math

假设我们有两个变量:

int test = 50;
int test1 = 45;

现在我想检查test1是否在test附近,在-5 / + 5之内。我该怎么办?

5 个答案:

答案 0 :(得分:11)

const int absoluteDifference = 5;

int test = 50;
int test1 = 45;

if (Math.Abs(test - test1) <= absoluteDifference)
{
    Console.WriteLine("The values are within range.");
}

答案 1 :(得分:5)

尝试:

if (Math.Abs(test - test1) <= 5)
{
    // Yay!!
}

这将调用数学“绝对”函数,即使为负数也会返回正值。例如。 Math.Abs​​(-5)= 5

答案 2 :(得分:4)

听起来你只想测试两个数字之间的差异是否在一定范围内。

// Get the difference
int d = test - test1;

// Test the range
if (-5 <= d && d <= 5)
{
    // Within range.
}
else
{
    // Not within range
}

答案 3 :(得分:2)

using System;
...
if (Math.Abs(test - test1) <= 5) return true;

答案 4 :(得分:0)

您可能希望在功能中将其封装 遗憾的是,您无法使用通用类型,因为+运算符不支持此类型 因此需要专门为int和任何其他类型实现它。

public static bool DoesDifferenceExceed(int value, int differentValue, int maximumAllowedDiffernece)
{
    var actualDifference = Math.Abs(value - differentValue);
    return actualDifference <= maximumAllowedDiffernece;
}