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);