代碼
private static void testAddition() {
double a = 2.525;
double b = 2.085714285714286;
double c = 1.8142857142857143;
System.out.println("測試交換律:");
double abc = a + b + c;
double acb = a + c + b;
System.out.println("a + b + c: " + abc);
System.out.println("a + c + b: " + acb);
System.out.println("測試結(jié)合律:");
double ABc = (a + b) + c;
double aBC = a + (b + c);
System.out.println("(a + b) + c: " + ABc);
System.out.println("a + (b + c): " + aBC);
System.out.println("其他:");
double bc = b + c;
double cb = c + b;
System.out.println("b + c: " + bc);
System.out.println("c + b: " + cb);
double a_bc = a + (b + c);
double a_cb = a + (c + b);
System.out.println("a + (b + c): " + a_bc);
System.out.println("a + (c + b): " + a_cb);
}
運(yùn)行結(jié)果
可以看出,由于double類型的精度損失损同,帶來了微小誤差翩腐,如果使用四舍六入五成雙算法保留兩位小數(shù),6.425 約為 6.42膏燃,6.425000000000001 約為 6.43