for循环期间精度损失[数组]

时间:2014-01-25 23:13:41

标签: java

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循环以在此字符串中打印双精度值?

4 个答案:

答案 0 :(得分:1)

变化:

for(int i : temperature) 

for(double i : temperature) 

请注意,temperaturedouble 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