/**
* @Description: 格式化數字 添加千分位標識
* @Author: Xyz
* @Date: 2023/4/22 10:27
* @Param: [number]
* @Return: java.lang.String
*/
public static String FormatNumberThousandth(String number){
//split()方法支持正则表达式,‘.’表示匹配任意字符,所以这里需要转义,表示匹配‘.’
String strArr[] = number.split("\\.");
//将整数部分分离出来
StringBuffer sb = new StringBuffer(strArr[0]);
//小于等于三位,不需要该操作,返回原数字
if(sb.length()<=3){
return number;
}
//大于三位
int last = sb.length();
//从后往前,每三位前插入一个逗号
for (int i = last-3; i >0 ; i-=3) {
sb.insert(i,",");
}
StringBuffer doubleStr = new StringBuffer(".");
try {
//如果有小数部分,那就小数点加上小数部分
doubleStr.append(strArr[1]);
}catch (ArrayIndexOutOfBoundsException e){
//进入这里表示没有小数部分,那就将doubleStr置为空字符
doubleStr.deleteCharAt(doubleStr.length()-1);
}
//整数和doubleStr的结果拼接
sb.append(doubleStr);
return sb.toString();
}
网友评论