Trong C#, mỗi kiểu dữ liệu có một phạm vi giá trị nhất định. Dưới đây là bảng tổng hợp phạm vi của các kiểu dữ liệu cơ bản.
| Kiểu dữ liệu | Số byte | Phạm vi giá trị |
|---|---|---|
byte |
1 byte | 0 → 255 |
sbyte |
1 byte | -128 → 127 |
short |
2 byte | -32,768 → 32,767 |
ushort |
2 byte | 0 → 65,535 |
int |
4 byte | -2,147,483,648 → 2,147,483,647 |
uint |
4 byte | 0 → 4,294,967,295 |
long |
8 byte | -9,223,372,036,854,775,808 → 9,223,372,036,854,775,807 |
ulong |
8 byte | 0 → 18,446,744,073,709,551,615 |
📌 Ghi chú:
| Kiểu dữ liệu | Số byte | Phạm vi giá trị | Độ chính xác |
|---|---|---|---|
float |
4 byte | ±1.5 × 10⁻⁴⁵ → ±3.4 × 10³⁸ | ~7 chữ số thập phân |
double |
8 byte | ±5.0 × 10⁻³²⁴ → ±1.7 × 10³⁰⁸ | ~15 chữ số thập phân |
decimal |
16 byte | ±1.0 × 10⁻²⁸ → ±7.9 × 10²⁸ | ~28-29 chữ số thập phân |
📌 Ghi chú:
Số byte: 1 byte, chứa giá trị True / False
bool isActive = true;
bool isFinished = false;
Kiểu này tùy thuộc vào nội dung gán vào, chứa được dãy ký tự unicode
| Kiểu dữ liệu | Ý nghĩa |
|---|---|
object |
Kiểu dữ liệu chung, có thể chứa bất kỳ kiểu dữ liệu nào |
dynamic |
Kiểu dữ liệu động, kiểu xác định lúc runtime |
var |
Kiểu ngầm định, compiler tự suy luận kiểu dữ liệu |
object obj = 123; // Lưu số nguyên
object obj2 = "Text"; // Lưu chuỗi
dynamic x = 10; // Lúc đầu là số nguyên
x = "Hello"; // Bây giờ là chuỗi
var y = 3.14; // Compiler hiểu y là double int cho số nguyên phổ biến (từ -2 tỷ đến +2 tỷ)
long cho số quá lớn (ví dụ ID giao dịch, timestamp)
short / byte dùng trong xử lý nhúng, tối ưu bộ nhớ
👉 Không dùng long khi chỉ cần int → lãng phí bộ nhớ.
Bạn đang làm phần mềm quản lý xe ôtô bạn nên chọn kiểu int không ?
Vậy bạn tự đặt câu hỏi, nếu khách hàng mua 10 chiếc thì tổng tiền đơn hàng thế nào, kiểu int lưu đủ không ?
float 7 chữ số thập phân Game, đồ họa
double 15–16 chữ số Tính toán chung
decimal chính xác tuyệt đối Tiền tệ, tài chính
Text: string là kiểu dùng rất nhưng lưu ý
string là immutable → nối chuỗi nhiều lần thì nên dùng StringBuilder
Dùng char nếu chỉ lưu 1 ký tự.
Bạn đang làm phần mềm kế toán thì cột tổng tiền là kiểu float ổn không ?
bool isActive = true;
Tránh dùng int thay cho boolean → thiếu rõ ràng.
DateTime nếu chỉ cần ngày giờ
DateTimeOffset nếu có múi giờ
TimeSpan cho khoảng thời gian
int? age = null;
bool? isVerified = null;
Phạm vi các kiểu dữ liệu trong C#