Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khi nào nên dùng double thay vì float trong Java

So sánh double vs float

Đặc điểmdoublefloat
Kích thước64-bit (8 bytes)32-bit (4 bytes)
Độ chính xác (số chữ số thập phân)15-16 chữ số6-7 chữ số
Dải số mũ (exponent)11 bit8 bit
Bit dấu (sign)1 bit1 bit
Giá trị mặc định0.0d0.0f
Hằng số literal5.0, 5.0d, 5.0D5.0f, 5.0F

Khi nào dùng double?

  • Cần độ chính xác cao: tính toán khoa học, tài chính (tuy nhiên tài chính nên dùng BigDecimal), đo lường.
  • Biến tạm (temp variables) trong tính toán trung gian.
  • Mặc định cho literal số thực trong Java là double.

Khi nào dùng float?

  • Tiết kiệm bộ nhớ: mảng lớn số thực (millions of elements).
  • Độ chính xác thấp chấp nhận được: đồ họa, game, sensor data.
  • Tương thích API/hardware yêu cầu float (OpenGL, GPU).

Ví dụ minh họa độ chính xác


public class DoubleVsFloatPrecision {
    public static void main(String[] args) {
        double d = 55.637848675695785;
        float f = 25.657933f;

        System.out.println("double: " + d); // 55.637848675695786 (làm tròn cuối)
        System.out.println("float:  " + f); // 25.657932 (mất chính xác sau 7 chữ số)
    }
}

Kết quả

double: 55.637848675695786
float: 25.657932

Quy tắc chung: Mặc định dùng double. Chỉ dùng float khi có lý do rõ ràng (bộ nhớ, API). Tránh dùng float/double cho tiền tệ – dùng BigDecimal.