Trong các triển khai điểm nổi điển hình, kết quả của một thao tác được tạo ra như thể hoạt động được thực hiện với độ chính xác vô hạn, và sau đó làm tròn đến số dấu phẩy động gần nhất.
So sánh và b + a : Kết quả của mỗi thao tác được thực hiện với độ chính xác vô hạn là như nhau, do đó các kết quả chính xác vô hạn giống hệt nhau này được làm tròn theo một cách giống hệt nhau. Nói cách khác, phép cộng dấu phẩy động là giao hoán.a + bb + a
Lấy : b là số có dấu phẩy động. Với số dấu phẩy động nhị phân , 2 b cũng là số dấu phẩy động (số mũ lớn hơn một), vì vậy b + b được thêm vào mà không có bất kỳ lỗi làm tròn nào. Sau đó a được thêm vào giá trị chính xác b + b . Kết quả là giá trị chính xác 2 b + a , được làm tròn đến số dấu phẩy động gần nhất.b + b + ab2 bb + bmộtb + b2 b + a
Lấy : a + b được thêm vào và sẽ có lỗi làm tròn r , vì vậy chúng ta nhận được kết quả a + b + r . Thêm b và kết quả là giá trị chính xác 2 b + a + r , được làm tròn đến số dấu phẩy động gần nhất.a + b + ba + bra + b + rb2 b + a + r
Vì vậy, trong một trường hợp, , làm tròn. Trong trường hợp khác, 2 b + a + r , làm tròn.2 b + a2 b + a + r
Tái bút Việc hai số cụ thể và b cả hai phép tính có cho cùng một kết quả hay không phụ thuộc vào các số và vào sai số làm tròn trong phép tính a + b và thường khó dự đoán. Về nguyên tắc, sử dụng độ chính xác đơn hoặc kép không có sự khác biệt đối với vấn đề, nhưng vì sai số làm tròn là khác nhau, sẽ có các giá trị của a và b trong đó ở độ chính xác đơn, kết quả là bằng nhau và ngược lại, chúng không chính xác hoặc ngược lại. Độ chính xác sẽ cao hơn rất nhiều, nhưng vấn đề là hai biểu thức giống nhau về mặt toán học nhưng không giống nhau trong số học dấu phẩy động vẫn giữ nguyên.mộtba + b
PPS. Trong một số ngôn ngữ, số học dấu phẩy động có thể được thực hiện với độ chính xác cao hơn hoặc phạm vi số cao hơn so với các báo cáo thực tế. Trong trường hợp đó, nhiều khả năng (nhưng vẫn không được bảo đảm) rằng cả hai khoản tiền đều cho kết quả như nhau.
PPPS. Một bình luận hỏi liệu chúng ta có nên hỏi xem số dấu phẩy động có bằng nhau hay không. Hoàn toàn nếu bạn biết những gì bạn đang làm. Ví dụ: nếu bạn sắp xếp một mảng hoặc thực hiện một tập hợp, bạn sẽ gặp rắc rối khủng khiếp nếu bạn muốn sử dụng một số khái niệm "xấp xỉ bằng nhau". Trong giao diện người dùng đồ họa, bạn có thể cần tính toán lại kích thước đối tượng nếu kích thước của đối tượng đã thay đổi - bạn so sánh oldSize == newSize để tránh tính toán lại, biết rằng trong thực tế, bạn gần như không bao giờ có kích thước gần như giống hệt nhau và chương trình của bạn là chính xác ngay cả khi có một tính toán lại không cần thiết.