C/C++의 islessequal() 함수는 첫 번째 인수가 두 번째 인수보다 작거나 같은지를 판별하는 함수입니다. 이 함수는 math.h 헤더 파일에 선언되어 있으며, 조건이 만족되면 true(1)를, 그렇지 않으면 false(0)를 반환합니다.
islessequal() 함수 구문
bool islessequal(value1, value2);
각 매개변수의 의미는 다음과 같습니다.
value1 − value2와 비교하여 검사할 첫 번째 인수입니다.
value2 − value1이 작거나 같은지를 판단하는 기준이 되는 두 번째 인수입니다.
예제 1: 두 값이 같은 경우
다음은 islessequal() 함수의 기본적인 사용 예시입니다.
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int val1 = 8;
int val2 = 8;
bool result;
result = islessequal(val1, val2);
cout << "val1 islessequal than val2 : " << result << endl;
return 0;
}출력 결과
val1 islessequal than val2 : 1
위 예제에서는 두 개의 값을 비교하고 있습니다. islessequal() 함수는 내부적으로 value1 < value2 || value1 == value2 조건을 검사합니다. 즉, 두 조건 중 하나라도 참이면 1(true)을 반환하고, 둘 다 거짓이면 0(false)을 반환합니다.
첫 번째 예제에서 val1과 val2는 모두 8로 같기 때문에 '작거나 같다'는 조건이 충족되어 결과로 1이 출력된 것입니다.
예제 2: value1이 value2보다 큰 경우
이번에는 첫 번째 값이 두 번째 값보다 큰 경우를 살펴보겠습니다.
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int val1 = 28;
int val2 = 8;
bool result;
result = islessequal(val1, val2);
cout << "val1 islessequal than val2 : " << result << endl;
return 0;
}출력 결과
val1 islessequal than val2 : 0
위 예제에서 val1(28)은 val2(8)보다 크기 때문에 '작거나 같다'는 조건이 성립하지 않아 결과로 0이 반환되었습니다.
islessequal() 함수의 특징
islessequal()은 일반적인 비교 연산자(<=)와 달리 부동소수점 특수 상황에서도 안전하게 동작하도록 설계된 매크로입니다. 인수 중 하나가 NaN(Not a Number)인 경우에도 유효하지 않은 부동소수점 예외(invalid floating-point exception)를 발생시키지 않고 단순히 false를 반환합니다. 따라서 부동소수점 값을 안정적으로 비교해야 하는 수학 라이브러리나 과학 계산 코드에서 유용하게 활용됩니다.