Dường như có nhiều cách tiếp cận để đánh giá xem hai số dấu phẩy động có giống nhau hay không. Dưới đây là một số ví dụ tôi đã tìm thấy:
fabs(x - y) < n * FLT_EPSILON * fabs(x)
HOẶC LÀfabs(x - y) < n * FLT_EPSILON * fabs(y)
fabs(x - y) < n * FLT_EPSILON * fabs(x + y)
fabs(x - y) < n * FLT_EPSILON * fabs(x + y) || fabs(x - y) < FLT_MIN)
fabs(x - y) < n * FLT_EPSILON * sqrt(x * x + y * y + FLT_EPSILON * FLT_EPSILON)
Tôi thực sự bối rối về họ. Giả sử có một cách tốt nhất để so sánh hai số dấu phẩy động, đó là cách đơn giản nhất cũng như chính xác nhất, các cách tiếp cận khác thậm chí không tồn tại. Vì vậy, những cách khác nhau phải có ưu và nhược điểm riêng.
Câu hỏi của tôi là: Để thực hiện "tính toán thực sự", cách tiếp cận nào là chính xác nhất?
Liên kết tham khảo: