为了账号安全,请及时绑定邮箱和手机立即绑定

如何在java中获得下一个更高的十进制值,四舍五入到一位小数?

如何在java中获得下一个更高的十进制值,四舍五入到一位小数?

慕仙森 2021-07-16 14:11:28
我有两个双打如下: 011490.2 和 011500.1 我想在 java 中打印此范围内的所有双打,四舍五入到一位小数。我怎样才能做到这一点?这是我到目前为止尝试过的,但它正在某种无限循环中进行:            Double a = Double.parseDouble(temp[0].subSequence(temp[0].indexOf("g")+1, temp[0].length()).toString());            Double b = Double.parseDouble(temp[1].subSequence(temp[0].indexOf("g")+1, temp[1].length()).toString());            int count = 0;            while (b >= a) {                count++;                System.out.println("printing range:" + Math.round(Math.nextUp(a));            }我想是这样的印刷:011490.2 011490.3 011490.4 011490.5 011490.6 011490.7 011490.8 011490.9 011490.2 011490.3 011490.4 011491.1 011491.2 011491.3 011491.4 011491.5。. . . 011500.1
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

double a = Double.parseDouble("011490.2");

double b = Double.parseDouble("011500.1");

int count = 0;

while (a <= (b + 0.1)) {

    System.out.printf("printing range: 0%.1f\n",a);

    a = a+0.1;

}

输出:


printing range: 011490.2

printing range: 011490.3

printing range: 011490.4

printing range: 011490.5

printing range: 011490.6

printing range: 011490.7

...

...

...

printing range: 011499.6

printing range: 011499.7

printing range: 011499.8

printing range: 011499.9

printing range: 011500.0

printing range: 011500.1


查看完整回答
反对 回复 2021-07-23
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

为了完整起见,这是for循环方式:


    double start = 11490.2D;

    double end = 11500.1D;


    for(double i = start; i < end + 0.05; i += 0.1) {

        System.out.printf("%.1f\n", i);

    }

编辑:根据亨利的评论更新


查看完整回答
反对 回复 2021-07-23
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这是我的变体


double a = 11490.2;

double b = 11500.1;


while (a <= (b + 0.01)) {

    System.out.printf("0%.1f ", a); //Change to System.out.printf("0%.1f \n", a); if you want each value on a new row

    a += 0.1;

}


查看完整回答
反对 回复 2021-07-23
  • 3 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信