Pet*_*rey 45
双精神并不总是精确的表示.您只能说将它转换为String时会有多少小数位.
double d= 234.12413;
String text = Double.toString(Math.abs(d));
int integerPlaces = text.indexOf('.');
int decimalPlaces = text.length() - integerPlaces - 1;
Run Code Online (Sandbox Code Playgroud)
这仅适用于未转换为指数表示法的数字.您可能会认为1.0有一个或没有小数位.
Bad*_*llz 16
Double d = 234.12413;
String[] splitter = d.toString().split("\\.");
splitter[0].length(); // Before Decimal Count
splitter[1].length(); // After Decimal Count
Run Code Online (Sandbox Code Playgroud)
String s = "" + 234.12413;
String[] result = s.split("\\.");
System.out.println(result[0].length() + " " + result[1].length());
Run Code Online (Sandbox Code Playgroud)