01/10/2018, 11:39
Lỗi chạy chương trình so sánh số thực
#include <stdio.h>
int main()
{
float diem=3.6;
if (diem==3.6) printf("Xuat sac");
return 0;
}
bạn nào cho mình hỏi như thế nào lại không in ra gì là sai chỗ nào nhỉ ??
Bài liên quan
Không nên so sánh trực tiếp số thực.
P/s: Lần sau thêm tag, category đầy đủ, đề title rõ ràng. Không cần phải thêm
[...]
vào trước câu hỏi.thế nên so sánh như thế nào nhỉ ? mình không biết bạn chỉ mình hộ đc ko
mình so sánh với 2.5 3.5 thì được nhưng 2.4 hay 2.6 ,… thì không được. tại sao vậy nhỉ ?
Do số thực có sai số, nên không nên/được so sánh trực tiếp 2 số thực.
eq(a,b) trả về =0 là bằng nhau thế như thế nào thì lớn hơn thế nào là nhỏ hơn nhỉ ?
3.6 != 3.6f. https://ideone.com/9iIOxW
0.5 == 0.5f rồi, lí do là vì đằng nào chả viết là 0.1b (binary).
p/s: đọc thêm: http://diendan.congdongcviet.com/threads/t396988::lieu-co-phai-compiler-bi-loi-so-sanh.cpp?p=905876#post905876