我在程序中遇到了关于printf
的问题,最后我写道:
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位数,但错误信息是什么意思?
答案 0 :(得分:3)
由于连接运算符+
; area[i] + " "
是java.lang.String
类型。执行错误告诉你这个。
错误消息是您的朋友。要学会欣赏它们。
答案 1 :(得分:1)
错误可能与你的表达中的事实相符:
System.out.printf("%4.1f",area[i]+" ");
你不打印一个浮点数,但是一个字符串(是的,area [i] +“”是一个字符串)。
尝试:
System.out.printf("%4.1f",area[i]);
它会变得更好,不是吗?