扭转操作

时间:2016-01-27 06:35:50

标签: java math

我试图扭转一些操作。

我的输入是

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我的逻辑错了。 如果我的值是10,我得到的结果是1.0而不是.1

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

案例2

现在我需要将0.14转换回14和.8转换为8。

什么是最佳选择?

我应该计算小数点后的位数,并用Math.pow或任何其他更好的方法相乘。 是否可以计算小数点?

3 个答案:

答案 0 :(得分:2)

做这个:

    val = val * Math.pow(10, count);
    Double d = new Double(val);
    int i = d.intValue();

答案 1 :(得分:1)

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

答案 2 :(得分:0)

要查找计数值,请使用以下逻辑:

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