# How to round to at most two decimal places in JavaScript #### Matthew C.

You want to round a number to two decimal places, at most. How do you do this?

## The Solution

The `Math.round()` method rounds a number to the nearest integer. You can use it along with some arithmetic to round a number to a specific number of decimal places. To round a number to two decimal places at most, multiply the number by 10 to the power of 2. This moves the decimal place to the position where you want rounding to occur. Then round the number to the nearest integer using `Math.round()` and divide the answer by 10 to the power of 2:

```.css-8wixsa{display:block;position:relative;color:inherit;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;will-change:box-shadow;outline:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;z-index:1;}.css-8wixsa:hover,.css-8wixsa:focus{cursor:pointer;}.css-8wixsa:hover .e1c139bc2,.css-8wixsa:focus .e1c139bc2{fill:#e1567c;cursor:pointer;}const num = 1.151;
console.log(Math.round(num * 10 ** 2) / 10 ** 2); // 1.15
.css-svqddq{position:absolute;z-index:10;background-color:black;float:right;top:2px;-webkit-align-self:flex-end;-ms-flex-item-align:flex-end;align-self:flex-end;color:#ffffff;display:none;}Click to Copy.css-1w9ozmm{position:absolute;z-index:10;height:20px;width:20px;fill:white;-webkit-align-self:flex-end;-ms-flex-item-align:flex-end;align-self:flex-end;background-color:black;display:block;}```

You may occasionally get rounding errors using this method. For example, if you round `1.005` to two decimal places, you would expect to get an answer of `1.01`:

```const num = 1.005;
console.log(Math.round(num * 10 ** 2) / 10 ** 2); // 1
Click to Copy```

However, the answer that you would get is `1`. This is because of floating point math and because a computer stores data in binary format. This causes the number `1.005` to be stored as `1.004999999888241291046142578125`, which causes the number to be rounded down to `1`.

Note that there is a limit to the precision with which a number with decimals can be stored. The ECMAScript standard defines a set size limit for the JavaScript `Number` type.

This rounding problem can be fixed using exponential notation:

```const num = 1.005;
console.log(Number(`\${Math.round(`\${num}e2`)}e-2`)); // 1.01
Click to Copy```

If the number is already in exponential notation, you’ll need to convert it to a `Number` first. You can do this using the `toFixed()` method:

```const num = (1.0449433327097e5).toFixed(20);
Click to Copy```

The popular Lodash utility library uses this exponential notation trick for its `createRound()` function.

If you are rounding negative numbers, be careful to note that `-0.5` rounds to `-0` and not `-1`. If the fractional portion of a number is exactly `0.5`, `Math.round` rounds the number to the next integer in the direction of +∞ (positive infinity).