How to use fesetround() function to sets the current rounding direction mode in C

2 Answers

0 votes
#include <stdio.h>     
#include <math.h>      
#include <fenv.h>

int main(int argc, char **argv)
{
	fesetround(FE_DOWNWARD);
	printf("FE_DOWNWARD: %.1f\n", rint(-4.7));

	fesetround(FE_TONEAREST);
	printf("FE_TONEAREST: %.1f\n", rint(-4.7));

	fesetround(FE_TOWARDZERO);
	printf("FE_TOWARDZERO: %.1f\n", rint(-4.7));

	fesetround(FE_UPWARD);
	printf("FE_UPWARD: %.1f\n", rint(-4.7));
	
	return 0;
}

/*
run:

FE_DOWNWARD: -5.0
FE_TONEAREST: -5.0
FE_TOWARDZERO: -4.0
FE_UPWARD: -4.0

*/ 

 



answered Mar 11, 2016 by avibootz
0 votes
#include <stdio.h>     
#include <math.h>      
#include <fenv.h>

int main(int argc, char **argv)
{
	fesetround(FE_DOWNWARD);
	printf("FE_DOWNWARD: %.1f\n", rint(4.6));

	fesetround(FE_TONEAREST);
	printf("FE_TONEAREST: %.1f\n", rint(4.6));

	fesetround(FE_TOWARDZERO);
	printf("FE_TOWARDZERO: %.1f\n", rint(4.6));

	fesetround(FE_UPWARD);
	printf("FE_UPWARD: %.1f\n", rint(4.6));
	
	return 0;
}

/*
run:

FE_DOWNWARD: 4.0
FE_TONEAREST: 5.0
FE_TOWARDZERO: 4.0
FE_UPWARD: 5.0

*/ 

 



answered Mar 11, 2016 by avibootz
...