这个版本又有奇葩需求
- 有些数值必须把末尾的0都取消
- 有些数值必须保留2位小数,不够得用0凑…
末尾去零原本准备写个工具类的,后来居然发现BigDecimal有对应的方法,果断不写了.
String formatMoney = new BigDecimal(flowPackage.money).stripTrailingZeros();
发现有效果,但是10变成了1E+1,20变成了 2E+1这种科学计数法了…
输出后面加个toString()…还是没什么效果
最后看API发现有2个方法…
toEngineeringString()
toPlainString()
第一个是将数值转换成科学计数法,第二个就是转换成10进制的数值.
String formatMoney = new BigDecimal(flowPackage.money).stripTrailingZeros().toPlainString();
这样就好了….
还有个需求是将不满2位小数的都自动补零…
截小数点,拿数组后半段,判断,补0,唯一注意的就是 “.”需要使用转义符
因为都至少会有一位小数,所以不需要考虑整数的情况
/**
* 全部保留2位小数点
*/
private String formatString(String str){
String[] split = str.split("\\.");
if (split[1].length()<2){
split[1] = split[1]+"0";
}
return split[0]+"."+split[1];
}