C Standard Library

C <fenv.h> - FE_DOWNWARD



The FE_DOWNWARD macro expands to a value of type int, which can be used with fesetround and fegetround functions to indicate downward rounding direction. Rounding x downward gives the largest possible value that is not greater than x.

Definition in the <fenv.h> header file is:

#define FE_DOWNWARD  /*implementation defined*/                

All possible rounding direction modes are given below:

MacrosDescription
FE_DOWNWARD Rounding towards negative infinity.
FE_TONEAREST Rounding towards nearest representable value.
FE_TOWARDZERO Rounding towards zero.
FE_UPWARD Rounding towards positive infinity.

Certain library implementations may define additional floating-point rounding direction macro constants (with their corresponding macros also beginning with FE_).

Example:

The example below shows the usage of FE_DOWNWARD macro.

#include <stdio.h>
#include <fenv.h>
#include <math.h>
 
#pragma STDC FENV_ACCESS ON

int main (){
  //downward rounding direction mode
  fesetround(FE_DOWNWARD);

  printf("rint(10.2) = %.1f\n", rint(10.2));
  printf("rint(10.8) = %.1f\n", rint(10.8));
  printf("rint(-5.2) = %.1f\n", rint(-5.2));
  printf("rint(-5.8) = %.1f\n", rint(-5.8));

  return 0;
}

The output of the above code will be:

rint(10.2) = 10.0
rint(10.8) = 10.0
rint(-5.2) = -6.0
rint(-5.8) = -6.0

❮ C <fenv.h> Library

5