之前使用
NumberFormat.getCurrencyInstance().format(Double.valueOf(balance))
字符串超过16位长度就会失去准确度(业务上处理金额是20位)
改用最朴素的方法
public static String formatCurrency(String balance) {
int point = balance.indexOf('.');
if(point < 0){
balance += ".00";
return balance;
}
String interger = balance.substring(0,point);
String decimal = balance.substring(point);
String dealDecimal = StringUtils.rightPad(decimal,3,'0');
return interger.concat(dealDecimal);
}