关于javascript:带逗号和小数点的数字格式

Number format with comma and decimal points

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

我试过使用Number(x).toLocaleString(),但这只给了我10000。

当我使用parseFloat(row.profit).toFixed(2)时,它给了我10000.00。我试着把parseFloat(Number(row.profit)toLocaleString()).toFixed(2)结合起来,但没有给我期望的输出,应该是10000.00。我怎样才能做到这一点?


如果您的区域设置字符串中是否存在.,您可以通过测试来使用快速黑客:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function localeFormat(x) {
  var num = Number(x).toLocaleString();
  if (num.indexOf("/.") > 0) {
    num +=".00";
  }else{
    var n = parseFloat(x).toFixed(2).toString();  
    num = Number(n).toLocaleString();
  }
  return num;
}
var strs = ["10000","10000.45","10000.45768"];
for(var i = 0; i < strs.length; i++){
  console.log(strs[i] +" ->" + localeFormat(strs[i]));
}