Java中的double和float類型都是用來存儲浮點數的。其中double類型占用8個字節,float類型占用4個字節,因此double類型的精度更高一些。
double d = 1.23456789; float f = 1.23456789f; System.out.println(d); // 輸出1.23456789 System.out.println(f); // 輸出1.2345679
由于浮點數的精度有限,所以在比較兩個浮點數是否相等時需要注意。一般使用一個小的常量來與誤差值比較,來判斷兩個浮點數是否接近相等。
double x = 1.0 / 3.0; double y = 1.0 - 2.0 / 3.0; if(Math.abs(x-y)< 1e-6) { System.out.println("x等于y"); } else { System.out.println("x不等于y"); }
當需要進行大量的浮點數計算時,建議使用double類型。因為由于float類型的精度限制,會在計算過程中出現較大的誤差。