Chúng ta muốn làm tròn x, một số thực, thành một giá trị int. Cách thực hiện đúng là:
Trả lời:
Đáp án đúng: A
Để làm tròn một số thực `x` thành một số nguyên gần nhất, ta cần cộng `x` với 0.5, sau đó lấy phần nguyên của kết quả.
* **Phương án A:** `y = (int)(x + 0,5)` là cách làm đúng. Đầu tiên, `x + 0,5` được tính. Sau đó, kết quả được ép kiểu về số nguyên, loại bỏ phần thập phân và thực hiện việc làm tròn theo quy tắc thông thường. Ví dụ: `x = 3.2` thì `x + 0.5 = 3.7`, `(int)(3.7)` sẽ là `3`. Nếu `x = 3.7` thì `x + 0.5 = 4.2`, `(int)(4.2)` sẽ là `4`.
* **Phương án B:** `y = int(x + 0,5)` đúng về mặt logic nhưng không phải là cú pháp chuẩn trong C/C++. Trong Python thì có thể đúng. Câu hỏi không chỉ rõ ngôn ngữ lập trình nên ta ưu tiên cách viết kiểu C/C++.
* **Phương án C:** `y = (int)x + 0,5` sai. Đầu tiên, `x` được ép kiểu về số nguyên (phần thập phân bị loại bỏ). Sau đó, `0,5` được cộng vào kết quả, nhưng kết quả cuối cùng vẫn là một số thực, không phải số nguyên đã làm tròn.
* **Phương án D:** `y = (int)((int)x + 0,5)` sai. `(int)x` sẽ loại bỏ phần thập phân của `x`. Sau đó, `0,5` được cộng vào, và kết quả lại được ép về số nguyên. Điều này tương đương với việc làm tròn xuống, không phải là làm tròn theo quy tắc thông thường.
Vậy đáp án đúng là A.