首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >倒车操作

倒车操作
EN

Stack Overflow用户
提问于 2016-01-27 06:35:49
回答 3查看 145关注 0票数 0

我试图扭转很少的行动。

我的输入是

代码语言:javascript
复制
1. 14
2. 8
3. 10

我的结果是

代码语言:javascript
复制
1. 0.14
2. 0.8
3. 0.1

代码

代码语言:javascript
复制
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或其他更好的方法来计数十进制后的数字和乘数。小数点计数是否可行?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-27 06:48:09

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2016-01-27 06:48:43

就这么做吧:

代码语言:javascript
复制
    val = val * Math.pow(10, count);
    Double d = new Double(val);
    int i = d.intValue();
票数 2
EN

Stack Overflow用户

发布于 2016-01-27 07:12:10

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

代码语言:javascript
复制
    double val= 0.14;
    String text = Double.toString(Math.abs(val));
    int integerPlaces = text.indexOf('.');
    int count= text.length() - integerPlaces - 1;

现在,

代码语言:javascript
复制
 int originalValue=(int) (val * Math.pow(10, count));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35030336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档