在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”。
有任何想法吗?
这不是一个四舍五入的问题,而是一个显示问题。数字不包含有关有效数字的信息;值2与2.0000000000000相同。当您将舍入后的值转换为字符串时,就可以使其显示一定数量的数字。
您可以在数字后添加零,例如:
var s = number.toString(); if (s.indexOf('.') == -1) s += '.'; while (s.length < s.indexOf('.') + 4) s += '0';
(请注意,这是假设客户端的区域设置使用句点作为小数点分隔符,该代码需要更多工作才能用于其他设置。)