Там уже находятся решения этой проблемы для малых чисел:разность двух больших чисел C#
- Здесь: Difference between 2 numbers
- Здесь: C# function to find the delta of two numbers
- Здесь: How can I find the difference between 2 values in C#?
I Подведем итог ответа всем:
Math.Abs(a - b)
Проблема при больших номерах это дает неправильный ответ (посредством переполнения). Хуже того, если (a - b) = Int32.MinValue
, то Math.Abs
сбоев с исключением (потому что Int32.MaxValue = Int32.MinValue - 1
). Его специфическая природа приводит к трудновоспроизводимым ошибкам.
Возможно, мне не хватает известной функции библиотеки, но есть ли способ определить разницу безопасно?
BigInteger - https://msdn.microsoft.com/en-us/library/system.numerics.biginteger(v=vs.110).aspx –
Что касается преобразования в длинный (Int64), а затем нахождения разницы ? – Igor
Есть a и b Int32 или Int64? – Liam