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

我有两个双打如下: 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


慕仙森
浏览 181回答 3
3回答

芜湖不芜

double a = Double.parseDouble("011490.2");double b = Double.parseDouble("011500.1");int count = 0;while (a <= (b + 0.1)) {&nbsp; &nbsp; System.out.printf("printing range: 0%.1f\n",a);&nbsp; &nbsp; a = a+0.1;}输出:printing range: 011490.2printing range: 011490.3printing range: 011490.4printing range: 011490.5printing range: 011490.6printing range: 011490.7.........printing range: 011499.6printing range: 011499.7printing range: 011499.8printing range: 011499.9printing range: 011500.0printing range: 011500.1

慕尼黑8549860

为了完整起见,这是for循环方式:&nbsp; &nbsp; double start = 11490.2D;&nbsp; &nbsp; double end = 11500.1D;&nbsp; &nbsp; for(double i = start; i < end + 0.05; i += 0.1) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.printf("%.1f\n", i);&nbsp; &nbsp; }编辑:根据亨利的评论更新

慕哥6287543

这是我的变体double a = 11490.2;double b = 11500.1;while (a <= (b + 0.01)) {&nbsp; &nbsp; System.out.printf("0%.1f ", a); //Change to System.out.printf("0%.1f \n", a); if you want each value on a new row&nbsp; &nbsp; a += 0.1;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java