Shi*_*mmy 2 c# optimization mathematical-optimization
我有一个整数,需要将其绝对值减一。
有没有比这更短的方法:
if(number > 0) number--; else if (number < 0) number++;
Run Code Online (Sandbox Code Playgroud)
更短:
number -= Math.Sign(number);
Run Code Online (Sandbox Code Playgroud)
Math.Sign返回-1, 0, 或1取决于指定值的符号。
扩展方法
由于您说您经常面临这种情况,因此将其作为扩展方法以更好地表达您的意图可能会有所帮助:
public static int ReduceFromAbsoluteValue(this int number, int reduceValue)
{
return number - Math.Sign(number) * reduceValue;
}
4.ReduceFromAbsoluteValue(1); // 3
-4.ReduceFromAbsoluteValue(1); // -3
0.ReduceFromAbsoluteValue(1); // 0
Run Code Online (Sandbox Code Playgroud)
或者命名它AddToAbsoluteValue并更改它以添加值。
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |