Ép kiểu phần 1
Thuộc phần Kiến thức nền tảng trong hành trình C++ của Coddy. Bài học 14 trên 74.
Ép kiểu là quá trình chuyển đổi một giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác.
Trong C++, chúng ta có thể chuyển số nguyên thành số thực, số thực thành số nguyên và nhiều kiểu chuyển đổi khác. Có hai kiểu ép kiểu: ngầm định (tự động) và tường minh (thủ công).
Ví dụ về Integer to Double:
Ép kiểu ngầm định (tự động):
int number = 5;
double decimal = number; // tự động chuyển thành 5.0
// khi có phép tính
int x = 7;
double result = x / 2.0; // result có giá trị 3.5Lưu ý: Khi chia hai giá trị int, C++ thực hiện phép chia số nguyên: phần thập phân bị loại bỏ. Ví dụ, 7 / 2 cho kết quả 3, không phải 3.5. Để có kết quả thập phân, ít nhất một toán hạng phải là double (ví dụ, 7 / 2.0 cho kết quả 3.5).
Ép kiểu tường minh (thủ công) Double to Integer:
double decimal = 9.7;
int number = (int) decimal; // thành 9 (phần thập phân bị cắt bỏ)
// với phép tính
double price = 19.99;
int roundedPrice = (int) price; // thành 19Phong cách ưu tiên trong C++ hiện đại: Thay vì dùng phép ép kiểu theo phong cách C (int) decimal, bạn nên dùng static_cast<>(), cách này an toàn hơn và thể hiện ý định của bạn rõ ràng hơn:
double decimal = 9.7;
int number = static_cast<int>(decimal); // thành 9 (phần thập phân bị cắt bỏ)
double price = 19.99;
int roundedPrice = static_cast<int>(price); // thành 19Lưu ý: Cả (int) value và static_cast<int>(value) đều cho cùng một kết quả ở đây, nhưng static_cast<>() là cách được khuyến nghị trong C++ hiện đại vì nó hiển thị rõ phép chuyển đổi và được trình biên dịch kiểm tra.
Thử thách
Người mớiViết một chương trình C++ minh họa việc ép kiểu. Thực hiện các yêu cầu sau:
Ép kiểu biến price thành int và lưu kết quả vào biến mới có tên intPrice.
Tự làm thử
int intPrice = ?; // Ép kiểu tường minh từ double sang int
// In ra các giá trị
std::cout << "Price: " << price << std::endl;
std::cout << "Int Price: " << intPrice << std::endl;
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
Tự luyện tập: Trình biên dịch C++ online