Java 检索逗号后的数字(从双精度数字)

Java 检索逗号后的数字(从双精度数字),java,double,Java,Double,假设我有4,81(双精度),我如何得到逗号后的数字 我希望8作为一个整数,1作为另一个整数 谢谢您始终可以进行这种循环: double number = 4,81; while (condition) { number *= 10; int nextNumber = Math.floor(number) % 10; } 当您对小数属性(如小数部分的小数位数)感兴趣时,使用双精度是很棘手的 我建议您让String.valueOf对十进制数字进行转换,并处理生成的字符串 double d

假设我有4,81(双精度),我如何得到逗号后的数字

我希望8作为一个整数,1作为另一个整数


谢谢

您始终可以进行这种循环:

double number = 4,81;
while (condition) {
  number *= 10;
  int nextNumber = Math.floor(number) % 10;
}

当您对小数属性(如小数部分的小数位数)感兴趣时,使用双精度是很棘手的

我建议您让
String.valueOf
对十进制数字进行转换,并处理生成的字符串

double d = 4.81;
String s = String.valueOf(d);

for (int i = s.indexOf(".") + 1; i < s.length(); i++) {
    int digit = Character.getNumericValue(s.charAt(i));
    System.out.println(digit);
}

一种方法是转换为字符串并对其进行操作,提取单个字符,然后将它们转换回int。输入是什么,字符串还是双精度字符?正是@Adam所说的。double始终表示为带浮点数的数字,而不是逗号。所以你有一个值为
4.81
double
还是一个包含
4,81
String
?但是一个double数字不能接受逗号
我不确定询问者在double中是如何使用逗号的。我想,coma/dot是由区域设置决定的。我猜他是指你的代码。您使用逗号作为分隔符,这是无效的。但是数字仍然没有转换为整数,这就是OP要求的。也许您应该将转换添加到整数。
8
1