So sánh 2 số thực C++

Chào mọi người. Cho em hỏi chút về so sánh 2 số thực trong C++. Thầy em bảo khi so sánh 2 sô thực thì ko được dùng trực tiếp if (a==b), mà phải: " so sánh trị tuyệt đối của hiệu 2 số cần so sánh với 1 số nhỏ tùy ý, nếu nhỏ hơn thì xem như bằng nhau". Cho em hỏi là vì sao ko được làm theo kiểu if (a>b) vậy ạ. Và có bắt buộc phải so sánh như thầy em nói ko ạ? Nếu có thì cho em xin cách code luôn. Cảm ơn cả nhà nhiều

Do số chữ số là có hạn :slight_smile: và đây là vấn đề cơ bản.

Nôm na là 1.0000 chia 3 xong mới nhân 3 thì không bao giờ bằng 1.0 nổi :slight_smile: nó bằng 0.9999.

5 Likes

Điều đó có bắt buộc ko bạn. Ví dụ mình cần CM 3 số là cạnh tam giác. thì cần If(a+b>c && b+c>a && c+a>b) Phải so sánh như kiểu thầy mình nói thì tốn nhiều code quá. Đối với nhiều bài cần so sánh phức tạp hơn thì code thế tốn nhiều thời gian và câu lệnh quá.

Để nguyên vậy thì sẽ nghiêng về phía > hơn là == và cũng hợp lí, vì nếu đúng mà “sát nút” thì “hình tam giác” cũng không sử dụng được.

5 Likes

thanks bạn nhé. Vậy có nghĩa là ta có thể dùng if () để so sánh 2 số a,b trong trương hợp “>” “<” “<=” và “>=”. Còn đối với so sánh “=” giữa a và b thì ta mới phải so sánh trị tuyệt đối của hiệu 2 số phải ko bạn

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?