Để rõ ràng, nếu tôi đang sử dụng một ngôn ngữ thực hiện IEE 754 nổi và tôi tuyên bố:
float f0 = 0.f;
float f1 = 1.f;
... Và sau đó in chúng ra, tôi sẽ nhận được 0,0000 và 1,0000 - chính xác.
Nhưng IEEE 754 không có khả năng đại diện cho tất cả các số dọc theo đường thẳng thực. Gần bằng không, 'khoảng trống' là nhỏ; khi bạn càng đi xa, khoảng cách càng lớn.
Vì vậy, câu hỏi của tôi là: đối với một số float 754, đây là số nguyên đầu tiên (gần nhất với số 0) không thể được biểu diễn chính xác? Bây giờ tôi chỉ thực sự quan tâm đến số float 32 bit, mặc dù tôi rất muốn nghe câu trả lời cho 64 bit nếu có ai đó đưa ra!
Tôi nghĩ rằng điều này sẽ đơn giản như tính toán 2 bits_of_mantissa và thêm 1, trong đó bits_of_mantissa là bao nhiêu bit mà tiêu chuẩn lộ ra. Tôi đã làm điều này cho các float 32-bit trên máy của mình (MSVC ++, Win64), và nó có vẻ tốt.