Không so sánh == trực tiếp do sai số biểu diễn. Dùng epsilon (ngưỡng sai số cho phép).
Hàm so sánh
bool equal(float a, float b, float eps = 0.01f) {
return fabs(a - b) < eps;
}
Ví dụ
float x = 22.0f/7.0f; // ~3.142857 float y = 3.1415f; equal(x, y); // true (eps=0.01) equal(x, y, 0.001f); // false
Lưu ý: cho double dùng epsilon nhỏ hơn (ví dụ 1e-9). C++20 có std::abs overload cho float/double.