Tôi gặp phải một số hành vi kỳ quặc, ít nhất là trong tâm trí của riêng tôi, trong khi gỡ lỗi một số mã liên quan đến việc xác định nếu một hoạt động bổ sung sẽ chảy một đôi. Đây là một chương trình ví dụ thể hiện những gì tôi tìm thấy.Có lỗi trong numeric_limits hoặc tôi chỉ nhầm lẫn?
#include <iostream>
#include <limits>
using std::cout;
using std::endl;
using std::numeric_limits;
int main()
{
double lowest = numeric_limits<double>::lowest();
bool truth = (lowest + 10000) == lowest;
cout << truth << endl;
}
Khi tôi thực thi mã này, tôi nhận được kết quả là đúng. Đây có phải là một lỗi hoặc tôi chỉ ngủ thiếu?
OP (ví dụ: Matthew) hoàn toàn nên đọc http://floating-point-gui.de/ –
@MatthewPapageorge cũng xem: [Định dạng điểm nổi chính xác kép] (http://en.wikipedia.org/ wiki/Double-precision_floating-point_format) – Rimas
Cảm ơn bạn đã trả lời nhanh chóng và rõ ràng, John. Tôi rất trân trọng điều này. Cảm ơn Basile và Rimas cho tài liệu đọc. –