js实现金额数字字符串规范格式化

作者:袖梨 2022-11-14

在程序开发中,有些地方需要显示金额,比如账户余额。涉及到数字较大的可能我们一眼看不出来这是多少钱,当然对于我们账户余额不超过三位数的?潘坷此岛敛挥跋欤??俏?嗣拦酆凸娣叮?颐且?越鸲钍?纸?泄娣兜母袷交??杂谡??糠值慕鸲睿?幼詈笠晃黄穑?悦克奈皇?智懊婕由弦桓龆汉拧O壤纯匆幌旅挥懈袷交?慕鸲钍?郑?隳芤谎劭闯隼凑馐嵌嗌偾?穑吭倮匆桓龈袷交?瓿傻慕鸲钍?郑?蠹叶员纫幌隆?/p>

未格式化的:

w


格式化好的:

ww

接下来我们就要对这个数字进行规范的格式化了,首先我们对这个字符串根据小数点进行分割,因为我们只需要对小数点前面的整数金额进行格式化。

String str="199495275.90";
String [] strs = str.split("[.]");
就可以得到数组 strs[0] = "199495275"; strs[1] = "90";
接下来写一个函数,形参类型为String。

//对数字字符串,每四个数字加上逗号
private static String addComma(String str) {
String reverseStr = new StringBuilder(str).reverse().toString();
String strTemp = "";
for (int i = 0; i < reverseStr.length(); i++) {
if (i * 4 + 4 > reverseStr.length()) {
strTemp += reverseStr.substring(i * 4, reverseStr.length());
break;
}
strTemp += reverseStr.substring(i * 4, i * 4 + 4) + ",";
}
// 将[789,456,] 中最后一个[,]去除
if (strTemp.endsWith(",")) {
strTemp = strTemp.substring(0, strTemp.length() - 1);
}
// 将数字重新反转
String resultStr = new StringBuilder(strTemp).reverse().toString();
return resultStr;
}

接下来,我们就可以调用了。

String money = addComma(strs[0]) + "." + strs[1] + "元" = "1,9949,5275.90元";

相关文章

精彩推荐