显示最多两位小数的数字,不带尾随零

时间:2012-04-18 18:37:57

标签: javascript numbers parsefloat

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

8.7456
8.7
8

我需要将它们显示为

8.74
8.7
8

即。最多显示两位小数。

我知道.toFixed(2)会帮助我获得第一个值,但是在第二个和第三个值上会有一些我不想要的尾随零。

如何产生我想要的结果?

2 个答案:

答案 0 :(得分:13)

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

(8.7456).toFixed(2).replace(/\.?0+$/, ""); // "8.75"
(8.7).toFixed(2).replace(/\.?0+$/, "");    // "8.7"
(8).toFixed(2).replace(/\.?0+$/, "");      // "8"

答案 1 :(得分:5)

乘以100 floor除以100。

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

编辑:如果您在事后看到这个问题,这可能不是您想要的。它满足了将8.7456显示为8.74的奇怪要求。另请参阅the relevant comment