javascript – round up number to nearest 100/1000 depending on number

  • A+
Category:Languages

I have a number that can be in the 2 digits, like 67, 24, 82, or in the 3 digits, like 556, 955, 865, or 4 digits and so on... How can I round up the number to the nearest n+1 digits depending on the number?

Example:

roundup(87) => 100, roundup(776) => 1000, roudnup(2333) => 10000 

and so on.

 


You could take the logarithm of ten and round up the value for getting the value.

function roundup(v) {     return Math.pow(10, Math.ceil(Math.log10(v))); }  console.log(roundup(87));   //   100 console.log(roundup(776));  //  1000 console.log(roundup(2333)); // 10000

For negative numbers, you might save the sign by taking the result of the check as factor or take a negative one. Then an absolute value is necessary, because logarithm works only with positive numbers.

function roundup(v) {     return (v >= 0 || -1) * Math.pow(10, 1 + Math.floor(Math.log10(Math.abs(v)))); }  console.log(roundup(87));    //    100 console.log(roundup(-87));   //   -100 console.log(roundup(776));   //   1000 console.log(roundup(-776));  //  -1000 console.log(roundup(2333));  //  10000 console.log(roundup(-2333)); // -10000

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: