Kiểu số trong C#

Với biến kiểu số, ta có thể sử dụng các toán tử (cộng, trừ, nhân, chia) lên nó.

Sau đây là ví dụ về sử dụng biến kiểu int cho các phép tính.

static void Main(string[] args)
{
    //khởi tạo biến demoInt với giá trị bằng 5
    int demoInt = 5;
    //ghi biến demoInt ra màn hình
    Console.WriteLine("demoInt: " + demoInt);
    //khởi tạo biến myVar với giá trị bằng 6;
    int myVar = 6;
    demoInt = demoInt + myVar;
    //xuất giá trị của biến demoInt ra màn hình, giá trị lúc này sẽ là 11
    Console.WriteLine("demoInt = demoInt + myVar: " + demoInt);
    //dòng dưới đây có nghĩa tương tự demoInt = demoInt + myvar; lúc này giá trị của demoInt sẽ là 17
    demoInt += myVar;
    Console.WriteLine("demoInt += myVar: " + demoInt);
    //dòng dưới có nghĩa là lấy giá trị của demoInt + 1. demoInt = demoInt +1;
    demoInt++;
    Console.WriteLine("demoInt++: " +demoInt);
    Console.ReadLine();
}

Tương tự cho các dấu còn lại.

Với kiểu int, bạn sẽ gặp trường hợp đặc biệt khi xử lý kết quả trả về là số thực, không phải số nguyên

Bây giờ bạn hãy tạo một biến int có giá trị bằng 5/3.

static void Main(string[] args)
{
    int myVar = 5 / 3;
    Console.WriteLine(myVar);
    Console.ReadLine();
}

bấm f5 để chạy chương trình, bạn sẽ thấy kết quả xuất ra là 1.

Lí do tại sao myVar có giá trị là 1 hay vì 1,6666666666 vì nó là kiểu int. Kiểu int chỉ chấp nhận giá trị là số nguyên, những phần số thực sau dấu phẩy sẽ bị cắt đi.
Vậy 5/3, được 1.66666, trình biên dịch sẽ lấy phần nguyên của phép chia là 1.

Để máy tính xuất ra đúng giá trị, bạn cần phải sử dụng kiểu số thực (float hoặc double) trong trường hợp này.

Tiếp tục bạn hãy gõ những dòng code này vào hàm Main.

static void Main(string[] args)
{
    int myVar = 5 / 3;
    Console.WriteLine("Gia Tri cua int: " + myVar);
    float myFloat = 5 / 3;
    Console.WriteLine("Gia tri cua float :" +myFloat);
    Console.ReadLine();
}

Kết quả xuất ra của float vẫn là 1, tại sao vậy? Lí do là C# đang hiểu trong phép chia 5/3, 5 là kiểu int, 3 và kiểu int do vậy kết quả trả về phải là kiểu int.

Để sửa điều này, bạn phải sửa 5 hoặc 3 thành kiểu số thực (5.0 hoặc 3.0).

static void Main(string[] args)
{
    int myVar = 5 / 3;
    Console.WriteLine("Gia Tri cua int: " + myVar);
    float myFloat = 5 / 3;
    Console.WriteLine("Gia tri cua float :" +myFloat);
    myFloat = 5.0f / 3;
    Console.WriteLine("Gia tri cua float sau phep chia so thuc: " + myFloat);
    Console.ReadLine();
}

Bây giờ bấm f5 và chạy bạn sẽ nhận được kết quả đúng.

f trong 5.0f nghĩa là gì?

f này có nghĩa là 5.0f là kiểu float, nếu không có f, thì có nghĩa là 5.0 là kiểu double.

Đối với kiểu  double của myVar thì bạn có thể làm như sau.

static void Main(string[] args)
{
    double myVar = 5.0 / 3;
    Console.WriteLine(myVar);
    Console.ReadLine();
}

Một ví dụ khác. Khi bạn gõ dòng này vào hàm Main, visual studio sẽ báo lỗi.

static void Main(string[] args)
{
    int myVar = 5 * 1.2;
}

Nguyên nhân là myVar đang được khai báo kiểu int (số nguyên). myVar đang bằng 5*1.2 (số nguyên nhân số thực). Dù kết quả là 6 nhưng C# vẫn hiểu kết quả trả về là số thực nên báo lỗi.

Tóm lại:

Số nguyên * số nguyên hoặc số nguyên/ số nguyên => số nguyên

(số nguyên * số thực) hoặc (số nguyên/số thực) => số thực

Các bạn tự tìm hiểu các trường hợp còn lại bằng câu lệnh Console.Writeline xuất kết quả ra ngoài màn hình.

Kết luận: khi khai báo và sử dụng biến, bạn nên chú ý nó sẽ sử dụng kiểu dữ liệu nào để tránh sai sót trong việc tính toán.

Các môn học khác

Chương trình thường được xây dựng quanh dữ liệu và logic để xử lý chúng. Nói cách khác: Program = Cấu trúc dữ liệu + giải thuật. Do vậy đây là môn học bắt buộc dành cho các lập trình viên.

Khoa học về dinh dưỡng, giáo trình giảm cân cho mọi người.

SQL là ngôn ngữ truy vấn mang tính cấu trúc, nó cho phép bạn truy cập và sử dụng database.