这个问题已经问过好几次了,但是我有以前提到的问题中从未提及的规范。
我想知道小数点后有多少个数字,包括最后的零。
我已经尝试过了:
double d= user_input;
String text =Double.toString(Math.abs(d));
int integerPlaces =text.indexOf('.');
int decimalPlaces =text.length() - integerPlaces - 1;
user_input 是用户可以输入的任何值。
它运行良好,例如2.384
显示3
小数,是正确的。
但是当用户输入:2.38400
时,它仍然显示3
小数,忽略了零。我还想计算这些零,以得出结果为5
。
我该如何解决?
答案 0 :(得分:0)
尝试一下
String text = YOUR_EDIT_TEXT.getText().toString().trim();
String[] arr = text.split("\\.");
int noOfDecimalPlaces = arr[1].length();
希望这会有所帮助。随时要求澄清...
答案 1 :(得分:0)
根据https://www.baeldung.com/java-separate-double-into-integer-decimal-parts,这是窍门:
double doubleNumber = 24.04;
int intPart = (int) doubleNumber;
System.out.println("Double Number: " + doubleNumber);
System.out.println("Integer Part: " + intPart);
System.out.println("Decimal Part: " + (doubleNumber - intPart));
答案 2 :(得分:0)
String text = "34.0003400";
int noOfDecimalPlaces = text.length() - text.indexOf(".") - 1;
String text = "3454";
int noOfDecimalPlaces;
if (text.indexOf(".") != -1) {
noOfDecimalPlaces = text.length() - text.indexOf(".") - 1;
} else {
noOfDecimalPlaces = 0;
}