How to Round Off to 3 Decimal Places in Javascript

In this tutorial, you will learn how to round off to 3 decimal places in javascript. The decimal number has the whole number part and the fractional part where the fractional part is separated by a decimal point. For example, 41.55 is a decimal number where 41 is the whole number and 55 is the fractional part.

To round off any decimal number up to 3 decimal places, you can make use of the toFixed() method, but in different browsers, this method behaves differently and that is why we are going to create our custom method to accomplish the goal.

In the following example, we have an input field in which we will enter a random decimal number. Upon click of a button, we will round it off to 3 decimal places and display the decimal number on the screen.  Please have a look over the code example and the steps given below.

HTML & CSS

  • We have 4 elements in the HTML file (div, input, button, and h1). The div element is just a wrapper for the rest of the elements.
  • The innerText for the button element is “Get” and for the h1 element, it is “Result”.
  • We have done some basic styling using CSS and added the link to our style.css stylesheet inside the head element.
  • We have also included our javascript file script.js with a script tag at the bottom.
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="style.css">
  <title>Document</title>
</head>

<body>

  <div class="container">
    <input type="number" placeholder="Enter Number">
    <button>Get</button>
    <h1>Result</h1>
  </div>

  <script src="script.js"></script>
</body>

</html>
.container {        
    text-align: center;
}

button {
  margin-top: 10px;
  padding: 10px 20px;
}

input {
  display: block;  
  margin: 10px auto;
  padding: 10px 20px;
}

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}

Javascript

  • We have selected the input element, button element, and h1 element using the document.querySelector() method and stored them in input, btnGet, and output variables respectively.
  • We have attached a click event listener to the button element.
  • In the event handler function, we are getting the value from the input element using value property and converting it into number type using the Number() method. The conversion result is stored in the num variable.
  • We have created the roundOff() method which takes 2 parameters, value and precision. This method will be responsible for rounding off the decimal number.
  • We are calling the roundOff() method and passing it num and 3 as parameters. The returned value will be stored in the result variable.
  • We are displaying the result in the h1 element using the innerText property.
let input = document.querySelector("input");
let btnGet = document.querySelector("button");
let output = document.querySelector("h1");

btnGet.addEventListener("click", () => {
  let num = Number(input.value);
  let result = roundOff(num, 3);
  output.innerText = result;
});

function roundOff(value, precision) {
  var multiplier = Math.pow(10, precision || 0);
  return Math.round(value * multiplier) / multiplier;
}