Упростите условия if при проверке диапазона и установке значения по умолчанию
У меня есть функция, которая преобразует double
значение в sbyte
и возвращает его шестнадцатеричное представление:
string convertToSByte(double num, double factor)
{
double _Value = num * factor;
if (_Value > 127)
{
_Value = 127;
}
else if (_Value < -127)
{
_Value = -127;
}
return Convert.ToSByte(_Value).ToString("X2");
}
Расчетный _Value
должен быть в пределах диапазона [-127 ; 127]
если нет, то эти значения должны быть установлены по умолчанию.
Вопрос: Как эти два, если условия и установка значений по умолчанию могут быть упрощены?
РЕДАКТИРОВАТЬ:
Я пытался использовать условный оператор ?
но на самом деле это не намного проще (даже немного сложнее для чтения), а также не совсем меньше кода
пс. Этот вопрос служит скорее образовательной цели. Чтобы найти другой способ проверки диапазонов переменной
1 ответ
Решение
Вы могли бы использовать Min
/Max
string convertToSByte(double num, double factor)
{
var value = Math.Min(127, Math.Max(-127.0, num * factor));
return Convert.ToSByte(value).ToString("X2");
}