VieTopik
Thư việnLuyện thiGóc học tậpĐánh dấu
Tải app
  • Thư viện
  • Luyện thi
  • Góc học tập
  • Đánh dấu
C# Core

Bài 2/7

Biến và kiểu dữ liệu

5 phút đọc

Nội dung bài

  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.Từ khoá var
  4. 4.Thử ngay
  5. 5.Lỗi hay gặp
  6. 6.Tóm tắt

Chương trình bán hàng cần nhớ tên sản phẩm, giá, số lượng trong kho. Để lưu những giá trị đó, bạn dùng biến. Mỗi biến có một kiểu, và chọn đúng kiểu là việc đầu tiên phải làm.

Khái niệm

📦 Biến (variable): một cái tên dùng để lưu và đọc lại một giá trị trong chương trình.

🏷️ Kiểu dữ liệu (data type): loại giá trị mà biến được phép chứa, ví dụ số nguyên hay chuỗi.

C# kiểm tra kiểu ngay lúc build. Biến đã khai báo kiểu int thì không gán chuỗi vào được.

Ví dụ

string name = "Bút bi";
int quantity = 120;
decimal price = 5000.50m;
bool inStock = true;

Console.WriteLine(name);
Console.WriteLine(price);

Khai báo biến theo mẫu kiểu tên = giá trị;. Năm kiểu dùng nhiều nhất:

Kiểu Chứa gì Ví dụ
int số nguyên 120
double số thực, tính nhanh nhưng có sai số nhỏ 1.75
decimal số thực chính xác, dùng cho tiền 5000.50m
bool đúng hoặc sai true, false
string chuỗi chữ "Bút bi"
  • Số decimal phải có chữ m ở cuối: 5000.50m.
  • Tên biến viết kiểu camelCase: chữ đầu thường, các từ sau viết hoa (inStock, unitPrice).

Từ khoá var

Khi giá trị bên phải đã rõ kiểu, bạn có thể viết var thay cho tên kiểu:

var quantity = 120;      // int
var price = 5000.50m;    // decimal
var name = "Bút bi";     // string

var không phải kiểu "gì cũng được". Compiler tự suy ra kiểu từ giá trị, và kiểu đó cố định từ đây về sau.

Thử ngay

Dán vào Program.cs rồi chạy dotnet run:

double a = 0.1;
double b = 0.2;
Console.WriteLine(a + b);

decimal c = 0.1m;
decimal d = 0.2m;
Console.WriteLine(c + d);

Đoán trước khi chạy: hai dòng in ra có giống nhau không?

Xem kết quả
0.30000000000000004
0.3

Không giống. double lưu số theo hệ nhị phân nên có sai số nhỏ. decimal lưu chính xác số thập phân, vì vậy tiền luôn dùng decimal.

Lỗi hay gặp

Gán sai kiểu. "5" là chuỗi, không phải số.

// SAI — lỗi compile: không gán chuỗi cho int
int quantity = "5";
// ĐÚNG
int quantity = 5;

Quên chữ m với decimal. Số có dấu chấm mặc định là double.

// SAI — lỗi compile: 9.99 là double
decimal price = 9.99;
// ĐÚNG
decimal price = 9.99m;

Tóm tắt

  • Khai báo biến: kiểu tên = giá trị;.
  • int cho số nguyên, decimal cho tiền, bool cho đúng/sai, string cho chữ.
  • var để compiler tự suy ra kiểu, nhưng kiểu vẫn cố định.
  • Tiền dùng decimal, không dùng double.

Tự kiểm tra

0/3 câu
Câu 1

Bạn cần lưu tổng tiền của một hoá đơn. Kiểu nào phù hợp nhất?

Câu 2

Sau dòng var count = 10; thì dòng count = "mười"; có chạy được không?

Câu 3

Biến lưu trạng thái "đơn hàng đã thanh toán hay chưa" nên dùng kiểu gì?

Chương trình đầu tiênToán tử và ép kiểu