简体   繁体   中英

How to round a number with multiple decimal places. Javascript

I am trying to create a function that can take a number and the number of decimal places and round the number to the exact decimal places that are going to be given. I am using parseInt(prompt()) in order to gave the number and the number of decimal places.

For example,

round(3.141519, 2) -> 3.14
round(5986.32456, 4) -> 5986.3246

Can someone help me with this?

You can use toFixed

check the following

  console.log(3.141519.toFixed(2)) console.log(5986.32456.toFixed(4)) 

Here is a short function that will allow you to specify the precision and returns a number:

function round(number, places) {
   number = parseFloat(number, 10);
   var e  = parseInt(places || 2, 10);
   var m = Math.pow(10, e);
   return Math.floor(number * m) / m;
}

Or a slightly shorter ES6 function:

const round = (number, places=2) => {
   const m = Math.pow(10, places);
   return Math.floor(number * m) / m;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM