使用Javascript格式化逗号和小数位数

Formatting numbers for commas and decimal places with Javascript

本问题已经有最佳答案,请猛点这里访问。

我正在尝试用javascript创建一个函数,它显示所有带两个小数点的数字,并每隔三位添加逗号(1000 100000等)。

起初我有这样的经历:

1
2
3
var formatNumber = function(num) {
    return parseFloat((num).toFixed(2)).toLocaleString();
};

这很有效,但有一个例外。

1.2!=1.20在最终输出中。它只显示为1.2

但其他一切都很好。124.5879697=124.59,10000=10000,10586.357=10586.36

问题是最终的产出将显示为金钱,所以显示10000美元为10000美元是罚款的。但显示1.2美元时,1.2美元看起来有点过时。

为了解决这个问题,我尝试添加以下修改:

1
2
3
var formatNumber = function(num) {
   return parseFloat((Math.round(num*100)/100)).toFixed(2).toLocaleString();
};

这可以将所有内容保留到小数点后两位,这很好,但似乎已经取消了对局部字符串的激活,因为现在没有任何内容显示逗号。

我希望在这个而不是jquery中使用纯JavaScript。在这个主题中,似乎有很多关于一个或另一个问题的JS问题,但并没有将两者结合起来。

谢谢您。


这个好像管用

1
2
3
var f = function(num) {
    return parseFloat(num).toFixed(2).toLocaleString();
};