double [] temperature = new double[length];
// After this, the doubles are added to the array after being read from a file.
for (int i : temperature)
{
System.out.printf("%5s" , i.toString());
}
在for循环期间,我得到错误“可能丢失精度所需的int; found:double” 围绕循环的“温度”部分。如何创建for循环以在此字符串中打印双精度值?
答案 0 :(得分:1)
变化:
for(int i : temperature)
到
for(double i : temperature)
请注意,temperature
是double
s而不是int
的数组。
您的代码如何编译?您确定i.toString()
没有错误吗?打印i
就足够了。
答案 1 :(得分:0)
你应该使用
for (double i : temperature)
答案 2 :(得分:0)
嗯,问题是你的阵列充满了双打并且你把它们视为整数。比如说for(double i:temperature)
之类的东西。
答案 3 :(得分:0)
我建议将温度保持在double
,而不是将它们转换为int
。此外,您可以在格式字符串中指定如何格式化toString()
,而不是使用double
进行转换。例如,如果您希望将double
值打印到两位小数,则可以编写
for (double eachTemperature : temperature) {
System.out.format("%.2f%n", eachTemperature);
}
有关您可以使用的不同格式字符串的详细信息,请参见http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html