How to Round Doubles/Floats in JavaScript

Introduction

Floats and doubles represent floating-point numbers - numbers with decimal points. While this type is very useful for a wide variety of environments, depending on what they're used for, we sometimes want to round them to a whole number - closest whole integer, up or down.

In this article, we will explore how to round double/float numbers (including strings) in JavaScript using built-in methods of the Math object.

The Math Object

The Math object is used to conduct commonplace mathematical operations. Because the Math object is a static built-in object, you can't and won't need to initialize it - it can be invoked at any point as a static object with helper methods. It has a plethora of constants and techniques for doing mathematical operations, all of which may be accessed directly.

Let's look at some of the Math object's handy methods for rounding doubles/floats in JavaScript!

Math.round()

Math.round() is a function used to return the value of a floating-point number rounded to the nearest whole integer. Depending on the supplied float/double, Math.round() either rounds up or down.

If the floating-point number is above or equal to x.5 - it's rounded up to the nearest integer. If the floating-point number is below x.5, it's rounded down to the nearest integer:

Math.round(24.49); // 24
Math.round('29.5'); // 30
Math.round(72); // 72
Math.round(-40.51); // -41

Math.floor()

The Math.floor() method is used to return the nearest whole integer that is less than or equal to a specified value. In layman's terms, the floor() method rounds a number down and returns an integer result:

Math.floor(75.95); //  75
Math.floor(75.05); //  75
Math.floor(4); //   4
Math.floor('-65.05'); // -66
Math.floor(-65.95); // -66

Note: Math.floor(null) returns 0, not a NaN error.

Math.ceil()

The Math.ceil() method rounds a number up to the nearest greatest integer. Simply said, it is used to round up a number and return an integer value:

Math.ceil(0.95);    // 1
Math.ceil(7);      // 7
Math.ceil('9.008');  // 10
Math.ceil(-0.95);  // -0
Math.ceil(-7);     // -7
Math.ceil(-9.008); // -10

Note: Math.ceil(null) returns integer 0 and does not give a NaN error.

Math.trunc()

While truncating isn't rounding - it's worth mentioning the Math.trunc() method. It returns the whole integer of the number, by truncating (cutting off) the floating-point precision, regardless of whether the argument is positive or negative:

Math.trunc(38.37);    // 38
Math.trunc(72.84);    // 72
Math.trunc(0.123);    //  0
Math.trunc(-0.13323);   // -0
Math.trunc('-1.18923'); // -1
Math.trunc(NaN);      // NaN
Math.trunc('john');    // NaN
Math.trunc();         // NaN

Conclusion

In this short article, we've taken a look at how to round doubles/floats in JavaScript, with the help of Math.round(), Math.floor(), Math.ceil() and Math.trunc().

Last Updated: February 22nd, 2022
Was this article helpful?

Improve your dev skills!

Get tutorials, guides, and dev jobs in your inbox.

No spam ever. Unsubscribe at any time. Read our Privacy Policy.

Joel OlawanleAuthor

Frontend Developer & Technical Writer

© 2013-2024 Stack Abuse. All rights reserved.

AboutDisclosurePrivacyTerms