0

だから私はこの機能を持っています:

以下のコードを使用して球の半径をスキャナーに渡すと、スキャナーは 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 回ずつ返されることです。

これを修正する方法はありますか、私は何時間も別のことを試してきましたが、うまくいきません。

4

1 に答える 1

4

return "" + x + y;「x」を文字列に変換してから追加し、「y」を文字列に変換してから追加するため、出力が2倍になります。

この式を書き換えて、式"" + (x + y)を文字列に変換する前に評価する必要があります。

于 2012-11-03T16:20:50.527 に答える