如何在Java中以.i递增字符串?

时间:2018-08-06 16:24:56

标签: java

我的目标是将值对添加到HashMap上,如果已经使用了一个值,它将使前一个值增加.i。我的意思是,它将从0.1 ... 0.9开始,然后从0.100.110.12等开始……

我已经开始:

for (int i=0; i < 50; i++){
    Double test = Double.parseDouble( 0 + "." + i);

但是我找不到合适的测试来在双精度数达到.9(0.9,0.10)时将小数位添加到小数位。我尝试过的所有方法都无法可靠运行。我想知道是否有人可以提供帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用DecimalFormat来获取两位十进制数字。参数中的“ .00”告诉格式化程序使用两位小数,而“#”表示按原样显示整个数字

DecimalFormat df = new DecimalFormat("#.00");
    for(int i=0;i < 50 ;i++){
        Double test = Double.parseDouble( 0 + "." + i);
        System.out.println(df.format(test));

输出:

.00
.10
.20
.30
.40
.50
.60
.70
.80
.90
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20

答案 1 :(得分:1)

  

我的意思是,它将从0.1 ... 0.9开始,然后是0.10、0.11,0.12,依此类推...

要打印此模式,最简单的解决方案是打印该值,因为它实际上是String运算而不是数学运算。

for (int i = 1; i <= 50; i++) 
    System.out.println("0." + i);

注意:对于double,其值为0.1 == 0.10,无法将它们区分开。

答案 2 :(得分:0)

怎么样

double division = 1.0;
for(int i=0;i < 50 ;i++){
    if (i%10 == 0)
        division *= 10;

    Double test = i/division;
    System.out.print(test + " ");
}

每次下降一位小数时,它都会重复一次,但我希望对其进行测试是可以的。