Java如何提取整数的最后一位,然后显示到小数点的那个数字?

Java如何提取整数的最后一位,然后显示到小数点的那个数字?,java,Java,例如,如果用户输入133.66666 它将返回133.666 155.88888888888 =155.88888 821.8765432 =821.8 代码: 这是找到最后一个数字的方法 但是如何使用数字来显示小数的数量呢 对不起,我不太清楚 用户可以输入他们想要的任何数字(假设它们都是正数) 然后我使用整数X的最后一位数字来显示X个小数位数使用setMaximumFractionDigits来设置小数位数 试一试 考虑到155.8888888是一个double double n = 15

例如,如果用户输入
133.66666
它将返回
133.666

155.88888888888
=155.88888

821.8765432
=821.8
代码:

这是找到最后一个数字的方法 但是如何使用数字来显示小数的数量呢

对不起,我不太清楚 用户可以输入他们想要的任何数字(假设它们都是正数)
然后我使用整数X的最后一位数字来显示X个小数位数

使用
setMaximumFractionDigits
来设置小数位数

试一试


考虑到155.8888888是一个
double

double n = 155.888888888
int num = n;  // rounds down to 155
String numString = String.valueOf(num);
String last = numString.subString(
       numString.length() - 1, numString.length());
// should return 5
int lastDigit = Integer.parseInt(last);

// get new double
String formatted = String.forat("%." + lastDigit + "f", n);
double revisedN = Double.parseDouble(formatted);
注:未经测试


如果你只做
155%10
,你会得到
8
;但是如果它只有一个数字,比如
5
(5.8888),那么你就不能使用
%10
,这就是为什么我使用字符串值的原因。这
133.66666
不是整数。另外,请查看
NumberFormat
。实际上,如果用户输入
133.6666
,它将返回
133.0
@ZouZou是的,显然他在试图传达其他信息。我无法理解你的问题。所有这些数字都不是整数。我看不出你的三个例子之间有什么共同的逻辑:第一个保持3个小数,第二个保持5,最后一个保持1。请重新表述您的问题,并以清晰的方式告诉我们您正试图实现的目标。
     BigDecimal bd = new BigDecimal(23.045345686);   
     int noOfDecimalPlaces= 5;
     DecimalFormat df = new DecimalFormat();
     df.setMaximumFractionDigits(noOfDecimalPlaces);
     System.out.println("bd value::"+ df.format(bd));
double n = 155.888888888
int num = n;  // rounds down to 155
String numString = String.valueOf(num);
String last = numString.subString(
       numString.length() - 1, numString.length());
// should return 5
int lastDigit = Integer.parseInt(last);

// get new double
String formatted = String.forat("%." + lastDigit + "f", n);
double revisedN = Double.parseDouble(formatted);