有 Java 编程相关的问题?

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

java反向操作

我正试图扭转一些行动

我的意见是

1. 14
2. 8
3. 10

我的结果是

1. 0.14
2. 0.8
3. 0.1

代码

token = 14
val = Double.parseDouble(token);
int count = countDigits(val);
val = val / Math.pow(10, count);
System.out.println("val "+val);---> results 0.14

private static int countDigits(double value) {
 int count = 0;
 while (value > 1) {
     value = value / 10;
     count++;
 }
 return count;
}

案例1

因为我的逻辑是错误的。 如果我的值是10,我得到的结果是1.0而不是.1

我是checling while(value>;1),但一旦我添加=我就没有得到正确的结果

案例2

现在我需要将0.14转换回14,将0.8转换回8

最好的选择是什么

我应该计算小数点后的位数并用数学乘法吗。pow或其他更好的方式。 小数点是否可以计数


共 (3) 个答案

  1. # 1 楼答案

    要查找count的值,请使用以下逻辑:

        double val= 0.14;
        String text = Double.toString(Math.abs(val));
        int integerPlaces = text.indexOf('.');
        int count= text.length() - integerPlaces - 1;
    

    现在,

     int originalValue=(int) (val * Math.pow(10, count));
    
  2. # 2 楼答案

    只要这样做:

        val = val * Math.pow(10, count);
        Double d = new Double(val);
        int i = d.intValue();
    
  3. # 3 楼答案

    double d = 0.18;
    String numberD = String.valueOf(d);
    numberD = numberD.substring ( numberD.indexOf ( "." ) + 1);
    System.out.println(numberD); // Print as String
    System.out.println(Integer.parseInt(numberD)); // print as Integer
    
    //Output
     18