圆数到3个小数点(仅在必要时)

时间:2018-05-03 09:00:43

标签: javascript ecmascript-6

而不是Math.round()toFixed(),如果只有可分的数字包含十进制,那么维持3位小数的替代方法是什么。

我想要

  1. 100 / 30 => 3.333
  2. 390 / 100 => 3.90
  3. 100 / 100 => 1

1 个答案:

答案 0 :(得分:2)

如果需要,您可以修复小数并用点替换最后的零。



function round(n) {
    return function (v) {
       return v.toFixed(n).replace(/\.?0+$/, '');
    };
}

var array = [100 / 30, 390 / 100, 100 / 100, 100];

console.log(array.map(round(3)));




首先保持零。



function round(n) {
    return function (v) {
       return v.toFixed(n).replace(/0+$/, '0').replace(/\.0+$/, '');
    };
}

var array = [100 / 30, 390 / 100, 100 / 100, 100];

console.log(array.map(round(3)));