1

printf在一个程序中遇到了一个问题,最后我写了:</p>

System.out.print(area[i]+" ");

它打印:

2.000000000000001 12.0 28.274333882308138

然后我尝试用printf它来替换它:

System.out.printf("%4.1f",area[i]+" ");

但是,它在执行时出现错误:

f != java.lang.String

我知道可能是因为4.1的值配置错误2.000000000000001,因为如果我只在点后检索 1 位数字,则不会有 4 位数字宽,但是错误消息是什么意思?

4

2 回答 2

3

由于连接运算符+area[i] + " "是一种java.lang.String类型。执行错误告诉你这一点。

错误消息是你的朋友。学会欣赏他们。

于 2013-10-17T13:04:29.097 回答
1

该错误可能来自您的表达式中的事实:

System.out.printf("%4.1f",area[i]+" ");

您不打印浮点数,而是打印字符串(是的, area[i]+" " 是字符串)。

尝试:

System.out.printf("%4.1f",area[i]);

它应该会更好,不是吗?

于 2013-10-17T13:01:49.300 回答