Например:
Значение 10% в диапазоне между 0.0 и 20.0 будет 2.0
Значение 50% в диапазоне между -5.0 и 5.0 будет 0
Вся сложность в том, что это векторное вычисление, и - на - здесь не дает +
Диапазон может быть, например, (-5.0, -10.0), (5.0, 10.0), (-5.0, 10.0), в общем, идти и к верху и к низу.
Эта задача возникла в разработке игры. Пример:
(float StartValue, float EndValue, float Percent) {
const float OnePercent = (EndValue - StartValue) / 100.0f;
return StartValue + OnePercent * Percent;
}
Но это вычисление работает только если оба числа положительные, и если StartValue всегда ниже, чем EndValue.