货币的值(value)大于javascript的数字所能容纳的,因此所有的计算都必须对字符串进行。
我遇到的所有代码都以某种方式使用了 parseFloat()
或 parseInt()
。
例如。以下字符串:
22222222222222222222.222222 的格式为
$22,222,222,222,222,222,222.22
编辑:我不能使用第三方库。它目前仅用于显示,但我们赞赏在 js 中处理大量数字的更通用方法:)
最佳答案
只要您使用的数字是一个字符串,那么这应该可以工作。
var result = numberWithCommas("22222222222222222222.282222");
function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[1] = parts[1].substr(0,2);
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
JSFiddle:http://jsfiddle.net/markwylde/XNS6T/1/
这是基于对 mikez302 在 this topic 中提供的先前问题的回答
关于javascript - 如何在 JS 中将大字符串(不是数字)格式化为货币?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467606/