In this article, you’ll learn how to **round a number up to the nearest 10 in JavaScript** by using math and the `Math`

class’ static `Math.round()`

function. Let’s read this article now to understand more.

## Round a number up to the nearest 10 in JavaScript

**Rounding a number up to the nearest 10**

Unfortunately, no function explicitly does this. There’s only the `Math`

class’s static `Math.round()`

, `Math.floor()`

or `Math.ceil()`

functions which usually rounds, round down, or round up a number by its first decimal, respectively.

However, our solution lies: If we can move the decimal point to the 1st digit (nearest 10), we can round the number and then move the decimal back to its original position.

You can do this by simply dividing the number by 10, rounding it with the Math.round() function, then multiplying the results by 10 again. For example:

**Code:**

const number = 123.45; // Rounding 12.345, then multiply by 10 const roundedNumber = Math.round(number / 10) * 10; console.log(roundedNumber);

**Output:**

`120`

**Rounding a number up to a specified digit or decimal**

Taking the logic of the part above, you can make a function to round a number to a specified digit. Simply do the same with the code above but divide and multiply the number by powers of ten (10, 100, 1000, etc.).

You can get powers of ten by using the exponentiation operator `(**)`

or the `Math`

class’ static `Math.pow()`

function. Both generally work the same.

With these things in mind, we have:

const number = 123456789; // Create a function to round a number to a specified digit function roundToDigit(number, toDigit) { return Math.round(number / (10 ** toDigit)) * (10 ** toDigit); } console.log(roundToDigit(number, 2)); // Round a number by the 2nd digit console.log(roundToDigit(number, 5)); // Round a number by the 5th digit console.log(roundToDigit(number, 1)); // Round a number by the 1st digit

**Output:**

```
123456800
123500000
123456790
```

However, you might want to round a number by its decimal instead; and to do that, you need to reverse the way you would do it when rounding by digits. I.e., multiplying first, then rounding the number, then dividing it again.

**Code:**

const number = 123.456789; // Create a function to round a number to a specified digit function roundToDecimal(number, toDecimal) { return Math.round(number * (10 ** toDecimal)) / (10 ** toDecimal); } console.log(roundToDecimal(number, 2)); // Round to 2nd decimal console.log(roundToDecimal(number, 5)); // Round to 5th decimal console.log(roundToDecimal(number, 1)); // Round to 1st decimal

**Output:**

```
123.46
123.45679
123.5
```

A thing to note is how the function responds if the `toDigit/toDecimal`

the parameter is not a natural number. One option is throwing an error with the `throw`

keyword. And another is making the parameter a natural number by rounding its absolute value with the `Math`

class’ static `Math.abs()`

function like this:

**Code: (Throwing error)**

const number = 123456.456789; function roundToDigit(number, toDigit) { // If the digit is a negative number and or is not a natural number, throw an error if (toDigit < 0 || Math.round(toDigit) != toDigit) { throw "Please enter a natural number"; } return Math.round(number / (10 ** toDigit)) * (10 ** toDigit); } function roundToDecimal(number, toDecimal) { // If the decimal is a negative number and or is not a natural number, throw an error if (toDecimal < 0 || Math.round(toDecimal) != toDecimal) { throw "Please enter a natural number"; } return Math.round(number * (10 ** toDecimal)) / (10 ** toDecimal); } console.log(roundToDecimal(number, 2)); // Round to 2nd decimal console.log(roundToDigit(number, 2)); // Round to 2nd digit // Decimal is a negative number, hence an error will be thrown console.log(roundToDecimal(number, -4)); // Digit is not a natural number or a positive, hence an error will be thrown console.log(roundToDigit(number, -1.7));

**Output:**

```
123456.46
123500
Uncaught Error Please enter a natural number
```

**Code: (Converting to a Natural number)**

const number = 123456.456789; function roundToDigit(number, toDigit) { // Rounds the digit and make it a positive number const toDigitFinal = Math.abs(Math.round(toDigit)); return Math.round(number / (10 ** toDigitFinal)) * (10 ** toDigitFinal); } function roundToDecimal(number, toDecimal) { // Rounds the decimal and make it a positive number const toDecimalFinal = Math.abs(Math.round(toDecimal)); return Math.round(number * (10 ** toDecimalFinal)) / (10 ** toDecimalFinal); } console.log(roundToDecimal(number, 2)); // Round to 2nd decimal console.log(roundToDecimal(number, -4)); // Round to 4th decimal console.log(roundToDecimal(number, -1.7)); // Round to 2nd decimal console.log(roundToDigit(number, 2)); // Round to 2nd digit console.log(roundToDigit(number, -4)); // Round to 4th digit console.log(roundToDigit(number, -1.7)); // Round to 2nd digit

**Output:**

```
123456.46
123456.4568
123456.46
123500
120000
123500
```

**Summary**

To **round a number up to the nearest 10 in JavaScript**, you need to divide the number by `10`

, then round the number with the `Math`

class’ static `Math.round()`

function, then multiply it by `10`

.

**Maybe you are interested**:

Hello, my name is Davis Cole. I love learning and sharing knowledge about programming languages. Some of my strengths are Java, HTML, CSS, JavaScript, C#,… I believe my articles about them will help you a lot.

**Programming Languages**: Java, HTML, CSS, JavaScript, C#, ASP.NET, SQL, PHP