我试图扭转很少的行动。
我的输入是
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
我正在检查while(value>1),但是一旦我添加=,我就没有得到正确的结果。
案例2
现在,我需要将0.14转换为14,将.8转换为8。
最好的选择是什么?
我是否应该用Math.pow或其他更好的方法来计数十进制后的数字和乘数。小数点计数是否可行?
发布于 2016-01-27 06:48:09
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发布于 2016-01-27 06:48:43
就这么做吧:
val = val * Math.pow(10, count);
Double d = new Double(val);
int i = d.intValue();发布于 2016-01-27 07:12:10
若要查找计数值,请使用以下逻辑:
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));https://stackoverflow.com/questions/35030336
复制相似问题