2

私はベクトルを持っています:

p[0]=0.40816269
p[1]=0.37576407
p[2]=0.16324950
p[3]=0.05282373

ベクトルの値を小数点以下 4 桁のパーセンテージで出力する必要があります。私は試した:

for(int i=0; i<p.length;i++)
{
    System.out.printf("Criterion "+i+" has the weigth=%.4f \n" , p[i]*100);
}

それは私に与える:

Criterion 0 has the weigth=40.8163, .....

しかし、私は印刷したい:

Criterion 0 has the weigth=40.8163 %, ..... 

各行の最後に記号「%」を追加できません。私が試してみると:

System.out.printf("Criterion "+i+" has the weigth=%.4f %\n" , p[i]*100);

また:

System.out.printf("Criterion "+i+" has the weigth=%.4f "+"%\n" , p[i]*100);

プログラムは例外をスローします。前もって感謝します!

4

5 に答える 5

5

%でエスケープする必要があります%%

System.out.printf("Criterion "+i+" has the weigth=%.4f %%\n" , p[i]*100);

詳細については、java.util.Formatter 変換仕様を参照してください。

于 2012-10-01T23:22:33.000 に答える
2

%%パーセント記号を印刷するために使用します。

System.out.printf("Criterion "+i+" has the weight=%.4f%%\n" , p[i]*100);
于 2012-10-01T23:22:39.597 に答える
2

なぜこれをしないのですか:

System.out.printf("Criterion %d has the weigth=%.4f%%\n", i, p[i]*100)

printfを使用する場合は、それをずっと使用してください:)

于 2012-10-01T23:27:00.530 に答える
1

"Criterion "+i+" has the weigth=%.4f %%\n"を追加するだけ%%です。

于 2012-10-01T23:21:57.617 に答える
1

他の人が言ったように、しかしなぜではない

System.out.printf("Criterion %d has the weight=%.4f%%\n" , i, p[i]*100);

printf を使用してフロートをフォーマットするのは少し奇妙ですが、i..

于 2012-10-01T23:27:23.563 に答える