Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Em có đoạn code:
Khi in ra được x = 33554432.0000 nhưng xét x == 33554433 (int) thì lại ra True.
Tại sao máy lại không lưu được chính xác giá trị trên và sao lại là True. Em cảm ơn.
Em có đoạn code:
#include <stdio.h>
void main(){
float x = 33554433.0;
printf("%f", x);
if (x == 33554433)
printf("True");
else
printf("False");
}
12345678910
Khi in ra được x = 33554432.0000 nhưng xét x == 33554433 (int) thì lại ra True.
Tại sao máy lại không lưu được chính xác giá trị trên và sao lại là True. Em cảm ơn.
Để sử dụng tính năng này, Bạn cần đăng nhập bằng tài khoản Howkteam.
Đăng nhập
Để xem được nội dung và giúp Kteam duy trì hoạt động.
Bạn vui lòng tắt Adblock trên website howkteam.vn nhé!
Vì độ chính xác của float là 7 chữ số, nên những số sau đó sẽ bị làm tròn (xem bài số chấm động).
Lời khuyên là nên xài double thay vì float, kết quả sẽ khác.