# 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!

If you enjoyed this article, sign up here to get new articles whisked straight to your inbox!