In JavaScript, to round a number to 2 decimal places we can use the Math.round() method in the following JavaScript code:

var roundedNumber = Math.round(num * 100) / 100;

In the code above, num will be the number that we want to round to 2 decimal places.

So if we want to round the number 2.354678 to 2 decimals places, we would use the following JavaScript:

var roundedNumber = Math.round(2.354678 * 100) / 100;

Which would result in the following output:

2.35

One thing to note is that the above code will round any number to a maximum of 2 decimal places. If a number does not have at least 2 decimals, it will not return the number with 2 decimal points.

If we want the number to always have 2 decimal places, then we need to add a little more code. Let’s do this in the example below.

Round a Number to Exactly 2 Decimals Places

Below we will provide code to let the user input a number, and then use the code above to round the number to 2 decimal places. Here is our simple HTML setup:

Type a number you want to round to 2 decimal places:

Below is the JavaScript code which take the user input using the onkeyup event or the onclick event along with the value property and use the Math.round() method on that user input and update the results below using the textContent property.

We talked about how we always want to return a number with 2 decimal places. So if the user types in the number 2, we want to return 2.00.

To do this, we just need to add a little more code to check the length of the decimal, using the indexOf() method.

function roundNum(e) {
  var roundedNumber;
  //If we clicked or pressed enter, run the following code 
  if( e == 'click' || e.keyCode == 13 ){
    var userNum = document.getElementById("userVal").value;
    
    //Round number to 2 decimal places, so use the code from the example above
    roundedNumber = Math.round(Number(userNum) * 100) / 100;
    
    //Convert Number to string to check decimal places
    roundedNumber = roundedNumber + "";

    //Check if number had a decimal point
    if(roundedNumber.indexOf('.') != -1){
      var decimalPlaces = roundedNumber.substring(roundedNumber.indexOf('.'));

      //Check if decimal has one place
      if( decimalPlaces.length == 2 ){
        //Number only has one decimal place, so add a 0
        roundedNumber = roundedNumber + '0';
      }
    } else {
      //Number has 0 decimal places, so add two
        roundedNumber = roundedNumber + '.00';
    }
    //Show the rounded number to the user
    document.getElementById("results").textContent = roundedNumber + "";   
  }
};

The final code and output for this example are below:

Code Output:

Type a number you want to round to 2 decimal places:


Full Code:

Type a number you want to round to 2 decimal places:

Hopefully this article has been useful in helping you understand how to use JavaScript to round to 2 decimal places.

Categorized in:

JavaScript,

Last Update: February 26, 2024