Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to round numbers in JavaScript

Whether you're building a simple calculator or a complex application that deals with numbers and calculations, you'll likely come across a situation where you need to round numbers. In this blog post, we will explore different ways to round numbers in JavaScript. By the end of this article, you'll have a solid understanding of how to round numbers and when to use each method.

Before diving into the actual code examples, it's important to have a clear understanding of what rounding means. In simple terms, rounding is the process of adjusting a number to make it simpler or more accurate. For example, if you have the number 5.6789 and you want to round it to the nearest whole number, it would become 6; if you want to round it to one decimal place, it would become 5.7.

Now, let's dive into different ways to round numbers in JavaScript.

The Math.round() method

The most common method to round numbers in JavaScript is the Math.round() method. This method rounds a given number to the nearest integer. If the decimal part of the number is greater than or equal to 0.5, it rounds the number up; otherwise, it rounds the number down.

Here's an example:

const num1 = 5.6789;
const roundedNum1 = Math.round(num1);
console.log(roundedNum1); // Output: 6

const num2 = 5.2;
const roundedNum2 = Math.round(num2);
console.log(roundedNum2); // Output: 5

Keep in mind that Math.round() may not be suitable if you need more control over the rounding process, such as rounding to a specific decimal place. In that case, you should use a different method, which we'll discuss later.

The Math.floor() method

Another way to round numbers in JavaScript is by using the Math.floor() method. This method rounds a given number down to the nearest integer, regardless of the decimal part. In other words, it always "chops off" the decimal part of the number.

Here's an example:

const num1 = 5.6789;
const roundedNum1 = Math.floor(num1);
console.log(roundedNum1); // Output: 5

const num2 = 5.2;
const roundedNum2 = Math.floor(num2);
console.log(roundedNum2); // Output: 5

Notice that both examples resulted in the same rounded number. This is because Math.floor() always rounds down, even if the decimal part is more significant than 0.5.

The Math.ceil() method

The Math.ceil() method is another way to round numbers in JavaScript. This method rounds a given number up to the nearest integer, regardless of the decimal part. In other words, if the number has a decimal part, even if it's less than 0.5, it will always round up.

Here's an example:

const num1 = 5.6789;
const roundedNum1 = Math.ceil(num1);
console.log(roundedNum1); // Output: 6

const num2 = 5.2;
const roundedNum2 = Math.ceil(num2);
console.log(roundedNum2); // Output: 6

As you can see, Math.ceil() always rounds up, which is different from Math.round() that rounds to the nearest integer.

Rounding to a specific decimal place

In some cases, you might need to round a number to a specific decimal place. You can achieve this by combining the previously mentioned methods with some additional logic.

Here's a simple function that rounds a given number to a specified number of decimal places:

function roundToDecimalPlaces(num, decimalPlaces) {
  const factor = Math.pow(10, decimalPlaces);
  return Math.round(num * factor) / factor;
}

const num1 = 5.6789;
const roundedNum1 = roundToDecimalPlaces(num1, 2);
console.log(roundedNum1); // Output: 5.68

In this example, we first multiply the number by a factor that corresponds to the desired number of decimal places (e.g., 100 for 2 decimal places, 1000 for 3 decimal places). Then, we use Math.round() to round the result to the nearest integer, and finally, we divide the result by the same factor to obtain the rounded number with the specified number of decimal places.

Rounding with toFixed() method

Another way to round a number to a specific number of decimal places is by using the toFixed() method. This method returns a string representing the number rounded to the specified number of decimal places. Keep in mind that since it returns a string, you may need to convert the result back to a number if you plan to perform further calculations with it.

Here's an example:

const num1 = 5.6789;
const roundedNum1 = num1.toFixed(2);
console.log(roundedNum1); // Output: "5.68"

// Convert the result back to a number
const roundedNum1AsNumber = parseFloat(roundedNum1);
console.log(roundedNum1AsNumber); // Output: 5.68

The toFixed() method is a convenient way to round numbers to a specific number of decimal places, especially when you want to display the result to the user.

Conclusion

In this blog post, we've covered different ways to round numbers in JavaScript. We've discussed the Math.round(), Math.floor(), and Math.ceil() methods, as well as how to round numbers to a specific number of decimal places using custom functions and the toFixed() method.

Now that you have a solid understanding of how to round numbers in JavaScript, you're equipped to tackle any rounding task that comes your way in your programming journey. Just remember to choose the appropriate method based on your specific use case and requirements.