双精度并不总是精确的表示形式。您只能说如果将其转换为字符串,将有多少个小数位。
double d= 234.12413;String text = Double.toString(Math.abs(d));int integerPlaces = text.indexOf('.');int decimalPlaces = text.length() - integerPlaces - 1;这仅适用于未转换为指数符号的数字。您可能会认为1.0小数点后一位或无位。

双精度并不总是精确的表示形式。您只能说如果将其转换为字符串,将有多少个小数位。
double d= 234.12413;String text = Double.toString(Math.abs(d));int integerPlaces = text.indexOf('.');int decimalPlaces = text.length() - integerPlaces - 1;这仅适用于未转换为指数符号的数字。您可能会认为1.0小数点后一位或无位。