一、说明
1、静态工具方法,拿来即用
2、静态常量自行定义
二、copy代码
1、求解小数位数
/**
* 计算小数位数
* @param val
* @return
*/
public static int calcDecimalNum(String val) {
System.out.println("val:" + val);
if (!StrUtils.isNum(val)) {
return DEFAULT_DECIMAL_NUM;
}
if (!val.contains(".")) {
// 整数
System.out.println("整数。。。");
return BigDecimal.ZERO.intValue();
}
String[] vals = val.split("\\.");
System.out.println("vals.length:" + vals.length);
if (vals.length != 2) {
// 多个小数点,非法,按6位返回
return DEFAULT_DECIMAL_NUM;
}
String decimalVal = vals[1];
char[] decimalNums = decimalVal.toCharArray();
int invalidZeroCount = 0;
for (int i = decimalNums.length - 1; i > -1; i--) {
if ('0' == decimalNums[i]) {
invalidZeroCount++;
continue;
}
break;
}
// 小数部分总长度 - 无效0个数
return decimalNums.length - invalidZeroCount;
}
2、StrUtils.isNum(val)
/**
*
* @param val
* @return true: 数字
*/
public static boolean isNum(String val) {
try {
new BigDecimal(val);
return true;
} catch (Exception e) {
return false;
}
}
3、DEFAULT_DECIMAL_NUM
private static int DEFAULT_DECIMAL_NUM = 6;