所以我有这个功能:

当我使用下面的代码时,我将球体半径传递给扫描仪,他确定了
double,并将其传递给toRound函数。

    String outputDoubles = " double one: 190.234567 and double two: 370.03245 ";

    Scanner doubles = new Scanner(outputDoubles);
    doubles.useDelimiter("[^\\p{Alnum},\\.-]");
    while(true) {
        double takeDouble;

        if (doubles.hasNextDouble()) {
            takeDouble = doubles.nextDouble(); // takedouble
            System.out.println(toRound(takeDouble));

        }

        if (doubles.hasNext()) {
            doubles.next();


        }
        else {
            break;
        }

    }


toRound在下面:

static String toRound (double number) {
    double x = number; // nog fixen
    System.out.println(" \n");
    double y = number;
    return "" + x + y;
}


问题是它返回的不是:190.234567,而是返回:190.234567190.234567190
因此它会互相返回2次。

有没有办法解决这个问题,我已经尝试了好几个小时,但无法使其正常工作。

最佳答案

return "" + x + y;将'x'转换为String,然后附加,将'y'转换为String,然后附加,因此输出加倍。

您需要重写此表达式"" + (x + y),以便在将表达式转换为字符串之前对其求值。

09-11 10:02