11

在我的代码中,我将接受多个值,例如:

8.7456
8.7
8

我需要让它们显示为

8.74
8.7
8

即显示最多两位小数。

我知道这.toFixed(2)将帮助我处理第一个值,但在第二个和第三个值上会有我不想要的尾随零。

如何产生我想要的结果?

4

2 回答 2

15

用于Number.toFixed将数字四舍五入到两位数并格式化为字符串。然后使用String.replace切断尾随零:

[8.7456, 8.745, 8.74, 8.7, 8].forEach(function(num) {
  var str = num.toFixed(2).replace(/\.?0+$/, "");
  console.log(num, str);
});

于 2012-04-18T19:26:26.243 回答
5

乘以 100 floor,除以 100。

var n = 8.7456;
var result = Math.floor(n * 100) / 100; // 8.74

编辑:如果你在事后看这个问题,这可能不是你想要的。它满足8.7456出现为的奇数要求8.74。另见相关评论

于 2012-04-18T18:40:54.737 回答