parseFloat(123456789.123456.toFixed(2)).toLocaleString(); //"123,456,789.12"(注意输出的是字符串) parseFloat(parseFloat("123456789.123456").toFixed(2)).toLocaleString(); //转换字符串格式
"123,456,789.12".replace(/[^\d\.-]/g, "");//恢复数字格式为没有,的形式
以下是网友提供的一个很冗长的方式:
/*格式化数字为000,000,000.00, s是需要转换的字符串or数字 n默认可以不用传参, n是小数点后面的位数 */ function formatMoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ""; var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1]; t = ""; for (i = 0; i < l.length; i++) { t += l[i] + ((i + 1) % 3 === 0 && (i + 1) != l.length ? "," : ""); } return t.split("").reverse().join("") + "." + r; }