我试图用javascript创建一个函数,显示所有带有两个小数点的数字,并每三位数字(1,000 10,000 100,000等)添加逗号。格式化逗号和小数点后的数字用Javascript
起初,我有这样的:
var formatNumber = function(num) {
return parseFloat((num).toFixed(2)).toLocaleString();
};
这工作得很好,但有一个例外。
1.2!= 1.20在最终输出中。它只是显示为1.2
但其他一切都很好。 124.5879697 = 124.59,10000 = 10,000和10586.357 = 10586.36
问题是最终输出将显示为金钱,因此显示10000为10,000美元罚款。但1.2美元显示1.2美元看起来有点关闭。
为了解决这个问题我尝试添加了以下修改:
var formatNumber = function(num) {
return parseFloat((Math.round(num*100)/100)).toFixed(2).toLocaleString();
};
此进行所有的东西到小数点后两位,这是很好的,但它似乎已经去激活的toLocaleString因为现在没有任何显示逗号。
我正在寻找使用纯JavaScript而不是jQuery。似乎关于这个话题有很多关于这个或那个问题的js问题,但是没有把两者结合起来。
谢谢。
你可以测试,看看有多少数字是小数点后的工作,如果它只有一个,增加一个0到它的结束? –
尝试这个正则表达式追加0如果小数点后的单个数字: 'parseFloat((num).toFixed(2))。toLocaleString()。replace(/ \。([0-9])$ /,“。$ 10” )' –