Расчет процента около 0,5 (0,4 = -20% и 0,6 = + 20%) - PullRequest
1 голос
/ 12 апреля 2010

Я нахожусь в странной ситуации, когда у меня есть значение 0,5, и я хочу преобразовать значения от 0,5 до 1 в процентах и ​​от 0,5 до 0 в отрицательные проценты.

Как сказано в названии, 0,4 должно быть -20%, 0,3 должно быть -40%, а 0,1 должно быть -80%.

Я уверен, что это простая проблема, но мой разум просто отказывается понять:)

Кто-нибудь может помочь? :)

Ответы [ 3 ]

10 голосов
/ 12 апреля 2010

То, что мы хотим сделать, это масштабировать диапазон (0; 1) до (-100; 100):

percentage = (value - 0.5) * 200;

Вычитание преобразует значение так, чтобы оно находилось в диапазоне (-0,5; 0,5), а умножение масштабирует его до диапазона (-100; 100).

1 голос
/ 12 апреля 2010
percent = ((value - 0.5) / 0.5) * 100

Это сгенерирует от -100 до 100. Вы хотите вычесть свое нулевое значение (0,5) из заданного значения и разделить на диапазон, который должен дать 100% (также 0,5 в вашем примере). Затем умножьте на 100, чтобы преобразовать в процент.

0 голосов
/ 12 апреля 2010

Нормализовать это, и все готово:

// Assuming x is in the range (0,1)
x *= 2.0; // x is in the range (0,2)
x -= 1.0; // (-1,1)
x *= 100; // (-100,100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...