2个数字之间的区别
我需要完美的algorithm或C#函数来计算2个十进制数之间的差异(距离)。
例如之间的区别:
100和25是75
100和-25是125
-100和-115是15
-500和100是600
是否有一个C#函数或一个非常优雅的algorithm来计算,或者我必须去处理每个案件分别与如果 S。
如果有这样一个函数或algorithm,哪一个呢?
你可以这样做
public decimal FindDifference(decimal nr1, decimal nr2) { return Math.Abs(nr1 - nr2); }
result = Math.Abs(value1 - value2);
加上这个,就像没有人在这里写的那样:
虽然你可以肯定使用
Math.Abs(number1 - number2);
这是最简单的解决scheme(也是接受的答案),我想知道没有人写出Abs实际上做了什么。 下面是一个解决scheme,可以在Java,C,C#和其他语言中使用C语言 :
int result = number1 - number2; if (result < 0) { result *= -1; }
就这么简单。 你也可以这样写:
int result = number1 > number2 ? number1 - number2 : number2 - number1;
最后一个可能会更快,一旦它被编译(都有一个如果和一个减法,但第一个在一些情况下有乘法,最后一个没有)。 第一个实际上是在做什么Abs正在工作。
我不认为在C#中是可能的,你可能需要看看在汇编中实现它