我正在寫一個程序,打印一個數組,其中包含作爲參數傳遞的兩個數組值的總和。除了最後一個double值之外,它一切正常。我想要打印最後一個值爲3.1。相反,它的打印下列:奇怪的雙重打印陣列
[5.9,11.7,2.4,3.0999999999999996]
不知道如何格式化以其他方式打印,因爲我不允許使用字符串來解決它。我沒有與其他值的問題。這是我的代碼,並感謝您的幫助!
import java.util.*;
class Sum
{
public static void main (String [] args)
{
double [] a1 = {4.5, 2.8, 3.4, 0.8};
double [] a2 = {1.4, 8.9, -1.0, 2.3};
arraySum (a1, a2);
System.out.println (Arrays.toString (arraySum (a1, a2)));
}
public static double [] arraySum (double [] x, double [] y)
{
int length = 0;
double [] sum = new double [x.length];
length = x.length;
for (int i = 0; i <= length - 1; i++)
{
sum[i] = x[i] + y[i];
}
return sum;
}
}
這是因爲二進制浮點,這是程序員必須知道的最基本的東西之一 –