Подтвердить что ты не робот

Разница между двумя номерами

Мне нужен идеальный алгоритм или функция С# для вычисления разности (расстояния) между двумя десятичными числами.

Например, разница между:
100 и 25 75
100 и -25 125
-100 и -115 15
-500 и 100 600

Есть ли функция С# или очень элегантный алгоритм для вычисления этого или мне нужно идти и обрабатывать каждый случай отдельно с ifs.

Если есть такая функция или алгоритм, какой из них?

4b9b3361

Ответ 1

Вы можете сделать это так:

public decimal FindDifference(decimal nr1, decimal nr2)
{
  return Math.Abs(nr1 - nr2);
}

Ответ 2

result = Math.Abs(value1 - value2);

Ответ 3

Просто добавьте это, так как никто не написал его здесь:

Пока вы можете использовать

Math.Abs(number1 - number2);

что является самым легким решением (и принятым ответом), я удивляюсь, что никто не писал, что на самом деле делает Abs. Здесь решение, которое работает в Java, C, С# и любом другом языке с синтаксисом типа C:

int result = number1 - number2;
if (result < 0) {
    result *= -1;
}

Это так просто. Вы также можете записать его так:

int result = number1 > number2 ? number1 - number2 : number2 - number1;

Последний может быть даже быстрее, если он скомпилирован (оба имеют одно и то же вычитание, но в первом случае в некоторых случаях есть умножение, а последнее - нет). Первый из них фактически выполняет работу Abs.

Ответ 4

Я не думаю, что это возможно в С#, вам, возможно, придется взглянуть на его реализацию в Assembler