-1

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

155.88888888888
=155.88888

821.8765432
=821.8

代码:

Scanner keys = new Scanner( System.in );
double x = (int) keys.nextDouble();
double lastdigit=x%10;

这就是找到最后一位数字的方法,但是如何使用数字来显示小数位数?

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

4

2 回答 2

1

用于setMaximumFractionDigits设置小数位数

尝试

     BigDecimal bd = new BigDecimal(23.045345686);   
     int noOfDecimalPlaces= 5;
     DecimalFormat df = new DecimalFormat();
     df.setMaximumFractionDigits(noOfDecimalPlaces);
     System.out.println("bd value::"+ df.format(bd));
于 2013-11-02T14:33:28.823 回答
0

考虑到 155.88888888 是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;但是如果它只有 1 个数字,比如5(5.8888),那么你不能使用% 10,这就是我使用 String 值的原因

于 2013-11-02T14:41:04.837 回答