# Normalizing Numbers

Normalizing can be confusing because there are some slightly different, but similar meanings, in different situations.

### Normalizing numbers

Typically the target of normalizing is to get numbers either in the range [0 -> 1], or [-1 -> 1].

To do this you'll need to know the minimum and maximum numbers in the range, and map your value to them.

Let's make a function we can use to normalize. We'll work with the number `12`, and the range is 0 -> 20.

``````function normalize(val = 0, max = 1, min = 0) {
return val / max;
}

normalize(12, 20);
// returns 0.6``````

If we pop in our value `12`, and set a `max` of `20`, we'll get a value back of `0.6`, which is correct.

We're not using the `min` yet, so lets use `12` as our value again, but make our range 10 -> 20. We'll need to update our function.

``````function normalize(val = 0, max = 1, min = 0) {
return (val - min) / (max - min);
}

normalize(12, 20, 10);
// returns 0.2``````

There are lots of ways to do this, and lots of choices you can make for style. For example, what if your value is outside of your range?

``````normalize(22, 20, 10);
// What should this return?``````

`22`, our value, is larger than `20` our `max`. Our function will return `1.2` as it is. Should it return `1`? These are all options and fun you can have with normalizing that will give you different results in your experiments!