Разница между 2 числами


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

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

есть Функция C# или очень элегантный алгоритм для вычисления этого или я должен идти и обрабатывать каждый случай отдельно с если s.

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

4 51

4 ответа:

вы можете сделать это

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

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

В то время как вы можете, конечно, использовать

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;

последний может быть еще быстрее, как только он будет скомпилирован (оба если и одно вычитание, но и умножение в некоторых случаях, последний не имеет). Первый на самом деле делает то, что делает АБС.

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