双精度小数位数

我需要Java中234.12413类的数字中的整数位数和小数点后的位数。

双精神并不总是精确的表示。 您只能说将它转换为String时会有多少小数位。

 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[] splitter = d.toString().split("\\."); splitter[0].length(); // Before Decimal Count splitter[1].length(); // After Decimal Count 
  String s = "" + 234.12413; String[] result = s.split("\\."); System.out.println(result[0].length() + " " + result[1].length()); 

1)转换为字符串

2)来自’。’的子串。 结束

3)获取此子字符串的长度