Độ chính xác của một số trong chương trình C/C++

Ví dụ như nhập 1 số có kiểu float là a = 999999999.0 và kiểm tra bằng lệnh If ( a==999999999.0) thì giá trị trả về là 2 số khác nhau. Lí do của việc đó có phải là do phần thập phân phía sau bị sai khác?

Ai giải thích hộ phần này với

Đúng. Lí do ở đây:

Kết luận: Đừng so sánh trực tiếp 2 số thực.

1 Like

Có định lượng đàng hoàng.

Dễ đọc hơn:

999999999.0 là double thì so với float không thể nào bằng :v nhưng nguyên nhân xa là do vượt quá số chữ số.

3 Likes

à cho mình hỏi thêm cách để biểu diễn chính xác 1 số dạng float hay double được không? làm sao để xuất ra số đó là .0000000000000000xxx và cách máy cấp phát bộ nhớ cho nó như thế nào?

Trong link có hết mà bạn.

2 Likes

Cái này thì cậu có thể dùng 1 biến eps cực nhỏ :v

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