Bài tập - Khám phá các loại dấu động
- 8 phút
Trong bài tập này, bạn làm việc với các kiểu dữ liệu dấu phẩy động để tìm hiểu về sự khác biệt sắc thái giữa từng kiểu dữ liệu.
Dấu phẩy động là một loại giá trị đơn giản đại diện cho các số ở bên phải chữ số thập phân. Không giống như số tích phân, có những cân nhắc khác ngoài các giá trị lớn nhất và nhỏ nhất mà bạn có thể lưu trữ trong một kiểu dấu phẩy động nhất định.
Đánh giá các kiểu dấu phẩy động
Trước tiên, bạn phải xem xét các chữ số có độ chính xác mà mỗi loại cho phép. Độ chính xác là số vị trí giá trị được lưu trữ sau dấu thập phân.
Thứ hai, bạn phải xem xét cách lưu trữ các giá trị và tác động đến độ chính xác của giá trị. Ví dụ: float và các double giá trị được lưu trữ nội bộ ở định dạng nhị phân (cơ số 2), trong khi decimal được lưu trữ ở định dạng thập phân (cơ số 10). Tại sao điều này lại quan trọng?
Thực hiện toán học trên các giá trị dấu phẩy động nhị phân có thể tạo ra kết quả có thể khiến bạn ngạc nhiên nếu bạn đã quen với phép toán thập phân (cơ số 10). Thông thường, toán học dấu phẩy động nhị phân là một xấp xỉ của giá trị thực. Do đó, float và double hữu ích vì các số lớn có thể được lưu trữ bằng cách sử dụng một lượng bộ nhớ nhỏ. Tuy nhiên, float và chỉ double nên được sử dụng khi một xấp xỉ hữu ích. Ví dụ, bị chênh lệch vài phần nghìn khi tính toán bắn tung tóe của một quả cầu tuyết trong một trò chơi điện tử là đủ gần.
Khi bạn cần một câu trả lời chính xác hơn, bạn nên sử dụng decimal. Mỗi giá trị của type decimal có dung lượng bộ nhớ tương đối lớn, tuy nhiên thực hiện các phép toán cho bạn kết quả chính xác hơn. Vì vậy, bạn nên sử dụng decimal khi làm việc với dữ liệu tài chính hoặc bất kỳ tình huống nào mà bạn cần kết quả chính xác từ một phép tính.
Sử dụng thuộc tính MinValue và MaxValue cho mỗi loại float có dấu
Xóa hoặc sử dụng toán tử chú thích
//để nhận xét tất cả mã từ các bài tập trước đó.Để xem phạm vi giá trị cho các kiểu dữ liệu khác nhau, hãy cập nhật mã của bạn trong Trình soạn thảo mã Visual Studio như sau:
Console.WriteLine("");
Console.WriteLine("Floating point types:");
Console.WriteLine($"float : {float.MinValue} to {float.MaxValue} (with ~6-9 digits of precision)");
Console.WriteLine($"double : {double.MinValue} to {double.MaxValue} (with ~15-17 digits of precision)");
Console.WriteLine($"decimal: {decimal.MinValue} to {decimal.MaxValue} (with 28-29 digits of precision)");
Trên menu Cài đặt Mã Visual Studio tệp, chọn Lưu tệp.
Tệp Program.cs phải được lưu trước khi xây dựng hoặc chạy mã.
Trong pa nen EXPLORER, để mở Một Thiết bị đầu cuối tại vị trí thư mục TestProject của bạn, hãy bấm chuột phải vào TestProject, sau đó chọn Mở trong Thiết bị đầu cuối tích hợp.
Một bảng điều khiển đầu cuối nên mở ra, và nên bao gồm một dấu nhắc lệnh cho thấy rằng thiết bị đầu cuối được mở vào vị trí thư mục TestProject của bạn.
Tại dấu nhắc lệnh Thiết bị đầu cuối, để chạy mã của bạn, hãy dotnet chạy rồi nhấn Enter.
Nếu bạn thấy thông báo "Không thể tìm thấy dự án để chạy", hãy đảm bảo rằng dấu nhắc lệnh Terminal hiển thị vị trí thư mục TestProject dự kiến. Ví dụ:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Bạn sẽ thấy đầu ra sau đây:
Floating point types: float : -3.402823E+38 to 3.402823E+38 (with ~6-9 digits of precision) double : -1.79769313486232E+308 to 1.79769313486232E+308 (with ~15-17 digits of precision) decimal: -79228162514264337593543950335 to 79228162514264337593543950335 (with 28-29 digits of precision)
Như bạn có thể thấy, float và double sử dụng một ký hiệu khác với ký hiệu được sử dụng để decimal biểu thị các giá trị lớn nhất và nhỏ nhất có thể của nó. Nhưng ký hiệu này có nghĩa là gì?
Giải mã các giá trị dấu phẩy động lớn
Bởi vì các kiểu dấu phẩy động có thể chứa các số lớn với độ chính xác, các giá trị của chúng có thể được biểu diễn bằng cách sử dụng "ký hiệu E", một dạng ký hiệu khoa học có nghĩa là "lần 10 được nâng lên lũy thừa của". Vì vậy, một giá trị như 5E+2 sẽ là giá trị 500 vì nó tương đương với 5 * 10^2 hoặc 5 x 102.
Tóm tắt
- Kiểu dấu phẩy động là một kiểu dữ liệu giá trị đơn giản có thể chứa các số phân số.
- Việc chọn kiểu dấu phẩy động phù hợp cho ứng dụng của bạn đòi hỏi bạn phải xem xét nhiều hơn là chỉ các giá trị lớn nhất và tối thiểu mà ứng dụng có thể nắm giữ. Bạn cũng phải xem xét có bao nhiêu giá trị có thể được bảo tồn sau số thập phân, cách các số được lưu trữ và bộ nhớ trong của chúng ảnh hưởng như thế nào đến kết quả của các phép toán.
- Các giá trị dấu phẩy động đôi khi có thể được biểu diễn bằng cách sử dụng "ký hiệu E" khi các số tăng lên đặc biệt lớn.
- Có một sự khác biệt cơ bản trong cách trình biên dịch và runtime xử lý
decimaltrái ngược vớifloator,doubleđặc biệt là khi xác định độ chính xác cần thiết từ các phép toán học.
Kiểm tra kiến thức của bạn
Phản hồi
Trang này có hữu ích không?
Không
Cần trợ giúp về chủ đề này?
Bạn muốn thử sử dụng Ask Learn để làm rõ hoặc hướng dẫn bạn về chủ đề này?