Hàm isgreaterequal() kiểm tra x >= y mà không gây floating-point exception (không raise FE_INVALID cho NaN). Trả về true (1) nếu đúng, false (0) nếu sai. Khai báo trong <math.h> (C) hoặc <cmath> (C++).
Cú pháp
bool isgreaterequal(float/double/long double x, float/double/long double y);
Ví dụ C++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a = 28, b = 8;
bool r = isgreaterequal(a, b);
cout << "a >= b: " << r << endl; // 1
a = 5; b = 8;
r = isgreaterequal(a, b);
cout << "a >= b: " << r << endl; // 0
return 0;
}
Kết quả
a >= b: 1
a >= b: 0
Giải thích: So sánh a >= b. Với số nguyên, tương đương a >= b. Thực sự hữu ích với float/double khi có NaN: NaN >= 5 là false (không raise exception), khác với (NaN >= 5) có thể raise FE_INVALID.
Hàm liên quan (C99/C++11)
| Hàm | So sánh | An toàn NaN |
|---|---|---|
| isgreater | x > y | Có |
| isgreaterequal | x >= y | Có |
| isless | x < y | Có |
| islessequal | x <= y | Có |
| islessgreater | x < y || x > y | Có |
| isunordered | x hoặc y là NaN | Có |
Lưu ý: Các hàm này là macro/function trong
math.h. Cần #include <math.h> và link -lm. Với số nguyên, dùng toán tử so sánh thường cho đơn giản.