有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

例如,如果用户输入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的小数量


共 (2) 个答案

  1. # 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));
    
  2. # 2 楼答案

    考虑到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,这就是我使用字符串值的原因