Khác biệt chính là độ chính xác (precision).
| Đặc điểm | float | double |
|---|---|---|
| Kiểu | Single precision (32-bit) | Double precision (64-bit) |
| Khoảng giá trị | ±3.4 × 10³⁸ | ±1.7 × 10³⁰⁸ |
| Độ chính xác | ~7 chữ số | ~15-17 chữ số |
| Giá trị mặc định | 0.0F | 0.0D |
| Hậu tố literal | F/f | D/d (mặc định) |
| Kích thước | 4 bytes | 8 bytes |
Ví dụ:
float f = 3.14F; double d = 3.14; // hoặc 3.14D // So sánh Console.WriteLine(f == d); // False! Do precision khác nhau Console.WriteLine((double)f == d); // True sau khi cast
Khi nào dùng nào:
- float: Tiết kiệm memory, đồ họa, game, sensor data, không cần độ chính xác cao
- double: Mặc định cho tính toán thực, khoa học, tài chính (dùng decimal cho tiền)
- decimal: 128-bit, 28-29 chữ số, cho tiền tệ, tài chính chính xác