我试图扭转一些操作。
我的输入是
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或任何其他更好的方法相乘。 是否可以计算小数点?
答案 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));