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

你需要逃避%with %%

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 回答