Javascript总是向上舍入到X小数位

时间:2017-08-21 09:23:30

标签: javascript

我需要编写一个总是向上舍入的函数,但要么舍入到0,1或2个小数位,这取决于函数是否传递给0,1或2。

...实例

舍入到小数点后0位: 13.4178 = 14

舍入到小数点后1位: 13.4178 = 13.5

舍入到小数点后2位: 13.4178 = 13.42

我找到了Math.ceil,但这只会累加到整数,而to fixed()会向上或向下舍入,而不仅仅是向上。有没有办法以我上面描述的方式进行整理?

3 个答案:

答案 0 :(得分:2)

您可以使用乘法因子乘以10和所需小数的幂,然后将其四舍五入并调整点。

function up(v, n) {
    return Math.ceil(v * Math.pow(10, n)) / Math.pow(10, n);
}

console.log(up(13.4178, 0));
console.log(up(13.4178, 1));
console.log(up(13.4178, 2));

答案 1 :(得分:0)

只需乘以,向上舍入并除以10 ^ dec的因子。



function roundUp( num, dec ) {
  // raise by dec, default to 0 decimals at the and.
  const d = Math.pow( 10, ( dec || 0 ) );
  // Multiply, round up and divide back so your decimals remain the same
  return Math.ceil( num * d ) / d;
}

console.log( roundUp( 1.2345 ) );
console.log( roundUp( 1.2345, 1 ) );
console.log( roundUp( 1.2345, 2 ) );
console.log( roundUp( 1.2345, 3 ) );




答案 2 :(得分:0)

使用辅助乘法和除法:

function MyCeil(number, digits) {
  var factor = Math.pow(10, digits);
  return Math.Ceil(number*factor) / factor;
}