35 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH FESETROUND 3  "December 18, 2009"
 | 
						|
.UC 4
 | 
						|
.SH NAME
 | 
						|
fesetround, fegetround \- floating point rounding mode control
 | 
						|
.SH SYNOPSIS
 | 
						|
.nf
 | 
						|
.ft B
 | 
						|
#include <fenv.h>
 | 
						|
 | 
						|
int fegetround(void);
 | 
						|
int fesetround(int \fIround\fP);
 | 
						|
.fi
 | 
						|
.SH DESCRIPTION
 | 
						|
These functions control the floating point rounding mode. One can use 
 | 
						|
fegetround to determine the rounding mode currently in effect and fesetround
 | 
						|
the change the rounding mode. Four rounding modes are recognized: FE_TONEAREST,
 | 
						|
FE_DOWNWARD, FE_UPWARD and FE_TOWARDZERO. When rounding a value \fIx\fP to an 
 | 
						|
integer \fIn\fP, the following approaches can be taken: FE_TONEAREST selects 
 | 
						|
the \fIn\fP for which abs(fIx\fP - \fIn\fP) is minimal, preferring an even 
 | 
						|
\fIn\fP if there are two possibilities; FE_DOWNWARD selects the largest \fIn\fP
 | 
						|
for which \fIn\fP <= fIx\fP; FE_UPWARD selects the smallest \fIn\fP for which 
 | 
						|
\fIn\fP >= fIx\fP; and FE_TOWARDZERO selects \fIn\fP with the largest 
 | 
						|
abs(\fIn\fP) for which abs(\fIn\fP) <= abs(\fIx\fP).
 | 
						|
.SH "RETURN VALUE"
 | 
						|
fegetround returns the current rounding mode. fesetround returns 0 if it was 
 | 
						|
succesful in adjusting the rounding mode and -1 otherwise. The only possible
 | 
						|
reason for failure is an unsupported value for \fIround\fP, which is signalled
 | 
						|
by setting errno to EINVAL.
 | 
						|
.SH DIAGNOSTICS
 | 
						|
fegetround always succeeds. The only possible reason for failure of fesetround
 | 
						|
is an unsupported value for \fIround\fP, which is signalled by setting errno to
 | 
						|
EINVAL.
 | 
						|
.SH "SEE ALSO"
 | 
						|
nearbyint(3)
 |