一尘不染

Javascript:将舍入后的数字格式化为N个小数

javascript

在JavaScript中,将数字四舍五入到N个小数位的典型方法是:

function roundNumber(num, dec) {
  return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
}



function roundNumber(num, dec) {

  return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);

}



console.log(roundNumber(0.1 + 0.2, 2));

console.log(roundNumber(2.1234, 2));

但是,这种方法 最多 可以舍入到N个小数位,而我想 始终 舍入到N个小数位。例如,“ 2.0”将四舍五入为“ 2”。

有任何想法吗?


阅读 257

收藏
2020-05-01

共1个答案

一尘不染

这不是一个四舍五入的问题,而是一个显示问题。数字不包含有关有效数字的信息;值2与2.0000000000000相同。当您将舍入后的值转换为字符串时,就可以使其显示一定数量的数字。

您可以在数字后添加零,例如:

var s = number.toString();
if (s.indexOf('.') == -1) s += '.';
while (s.length < s.indexOf('.') + 4) s += '0';

(请注意,这是假设客户端的区域设置使用句点作为小数点分隔符,该代码需要更多工作才能用于其他设置。)

2020-05-01