13

我需要将货币四舍五入到小数点后两位。

两个都

Math.round(num*Math.pow(10,2))/Math.pow(10,2)

Math.round(num*Math.pow(10,2))/Math.pow(10,2)

工作,除了它会切断任何尾随零,所以我得到29.9而不是29.90.

解决这个问题的最佳方法是什么?

4

4 回答 4

24

您可以将此添加到要设置特定格式的数字

.toFixed(2)
于 2012-09-13T08:30:54.053 回答
9
(Math.round(num*Math.pow(10,2))/Math.pow(10,2)).toFixed(2)
于 2012-09-13T08:31:24.767 回答
1

我在用这个,好像没问题

Math.round(x * 100)/100

它看起来最短

于 2021-05-14T08:34:28.053 回答
0

将其视为总美分是有道理的。19.999 = 1999.9 美分,小数点后第 3 位无所谓,反正你也付不起。

这是有道理的:

function convertToMoney(val){
    return (Math.floor(val*100).toFixed(0)/100).toFixed(2);
}
于 2021-04-30T14:51:21.140 回答