Как короче всего уменьшить модуль числа? - C#
Формулировка задачи:
Здравствуйте, как короче всего уменьшить модуль числа?
Сейчас использую такой код:
var mod = Math.Abs(Velocity); mod -= 2; if (mod < 0) mod = 0; Velocity = mod*Math.Sign(Velocity);
Решение задачи: «Как короче всего уменьшить модуль числа?»
textual
Листинг программы
using System;
class MyClass
{
static void Main(string[] args)
{
double x = 5, y = -5, z = 1;
Console.WriteLine(ReduceAbs(x, 2));
Console.WriteLine(ReduceAbs(y, 2));
Console.WriteLine(ReduceAbs(z, 2));
}
private static double ReduceAbs(double x, uint delta)
{
double result = x > 0 ? x - delta : x + delta;
return Math.Sign(result) == Math.Sign(x) ? result : 0;
}
}