Я хотел бы округлить число, основанное на соотношении двух значений.Круглое число, основанное на коэффициенте в C#
Отношение будет включать в себя значения, которые больше или меньше, чем исходное значение, где
ratio = newValue/originalvalue
Когда новое_значение> originalValue могу округление до ближайшего нижнего фактора с помощью:
double NearestLowerFactor(float value, double factor)
{
return Math.Floor(value/factor) * factor;
}
Для пример:
- factor = 2 отношение
- = 3
- NearestLowerFactor = 2
Когда новое_значение < originalValue Я хотел бы округлить до ближайшей обратной фактор.
Таким образом, если коэффициент равен 2 Я хотел бы закруглить на основе факторов 1/2, то есть 1/2, 1/4, 1/8, 1/16 и т.д.
Например :
- originalValue = 8
- новое_значение = 3
- отношение = 0,375
- NearestLowerFactor = 0,25 или 1/4.
Как бы я мог округлить до ближайшего более низкого коэффициента в этом случае?
Это замечательно. Я бы никогда не подумал об этом! Меня заставляет задуматься, есть ли формула, которая будет работать в обоих случаях, то есть ** newValue> originalValue ** и ** newValue
user1423893
@ user1423893 Попробуйте, это работает. – Rik
Это не работает для меня, когда 'ratio = 36' и' factor = 16'. Можете ли вы подтвердить, что вы получаете 32 с этими значениями? – user1423893