展开全部
String.split()字符串分割的参数是正则表达式,猜测你可能是因为这个所以分割出错了e68a84e8a2ad3231313335323631343130323136353331333365656536public class Test {
public static void main(String[] args) {
System.out.println(getLength(123.12)); // 3.2
System.out.println(getLength(23.6700)); // 2.2
System.out.println(getLength(15.00)); // 2.0
System.out.println(getLength(1234)); // 4.0
}
private static String getLength(double num) {
// 注意 15、15.000 会被转成 15.0 ,请自行判断是否符合要求
String str = String.valueOf(num);
String[] nums = str.split("\\.");// split方法的参数是正则表达式,所以.需要转义
int intLen = nums[0].length();
int decimalLen = nums[1].equals("0") ? 0 : nums[1].length(); // 15.0 的情况特殊处理,小数长度设为0
// int decimalLen = nums[1].length(); // 小数不特殊处理
return intLen + "." + decimalLen;
}
}