|int islessequal(float x , float y);|
|int islessequal(double x , double y);|
|int islessequal(long double x, long double y);|
In C programming <math.h> islessequal determines if the first argument is less than or equal to the second argument.
x -The first argument.
y -The second argument.
int -Return 1 is x<=y else 0.
Some points to note:
i) The value of islessequal(x , y) is same as (x)<=(y).The only difference between them is unlike ‘(x)<=(y)’, islessequal(x, y) does not raise the ‘invalid’ floating-point exception when x and y are unordered.
ii) +∞ is treated as greater than any valid value,-∞ is treated as smaller than any valid value.
iii) If one of the arguments is NaN ,0 is always returned.
iv) If character or int type is passed as argument the function with double as parameter type is called.
x1 = 2.1e20 , x2=2.2e20 ;
float fx = 11 , fy = 10 ;
long double ldx = 10 , ldy = 11 ;
printf(“%i”, islessequal( dx , dy) ) ; //calls the 2nd version
printf(“\n%i”, islessequal( fx , fy) ) ; //calls the 1st version
printf(“\n%i”, islessequal( ldx , ldy) ) ;//calls the 3rd version
printf(“\n%i”, islessequal( x1 , x2) ) ;
printf(“\n%i”, islessequal( NAN , INFINITY) ) ;
Output in Visual Studio,
Link : C nan:myths and conception