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