Last Updated: February 25, 2016
·
1.336K
· depl0y

# Calculating the percentage from a point within a range

Thanks to an awesome answer on math.stackexchange.com I just wanted to make a note to self. For quite a few controls it is needed to calculate the percentage of a certain point within a range (for example when building a custom slider control).

Let's say we have the following values:

``````float _minValue = 0;
float _maxValue = 200;
float _value = 50;``````

Using simple values here, to demonstrate that it works.

``float _percentage = ((_value - _minValue) / (_maxValue - _minValue)) * 100;``

This ends up in:

``((50 - 0) / (200 - 0)) * 100 = 25``

But we already knew that 50 is 25% in a 0 to 200 scale, right? But now lets do it the other way around. Let's say we have the following values:

``````float _minValue = 0;
float _maxValue = 200;
float _percentage = 25;``````

Now we can calculate the value that belongs with that percentage on the specified scale:

``float _value = (1.0f/100.0f) * ((_percentage * _maxValue) + (100 * _minValue) - (_percentage * _minValue));``

This ends up in:

``(1/100) * ((25 * 200) + (100 * 0) - (25 * 0)) = 50``

Amazing, right? This also works with ranges that have negative _minValue's, etc.

27.63K
10

9.954K
1

### Shortest code for random number between 1 and N in JavaScript

7.773K
6

#### Have a fresh tip? Share with Coderwall community!

Best #Math Authors
afshinm
35.4K
bnlucas
17.78K
donutdan4114
13.03K
remybach
3.376K
amrnt
2.241K
Related Tags
#math
Awesome Job