fegetenv, fesetenv - cppreference.com (original) (raw)

Defined in header <fenv.h>
int fegetenv( fenv_t* envp ); (1) (since C99)
int fesetenv( const fenv_t* envp ); (2) (since C99)
  1. Attempts to store the status of the floating-point environment in the object pointed to by envp.

  2. Attempts to establish the floating-point environment from the object pointed to by envp. The value of that object must be previously obtained by a call to feholdexcept or fegetenv or be a floating-point macro constant. If any of the floating-point status flags are set in envp, they become set in the environment (and are then testable with fetestexcept), but the corresponding floating-point exceptions are not raised (execution continues uninterrupted)

[edit] Parameters

envp - pointer to the object of type fenv_t which holds the status of the floating-point environment

[edit] Return value

​0​ on success, non-zero otherwise.

[edit] Example

Output:

current exceptions raised: none current rounding method: FE_TONEAREST   +11.5 -> +12.0 +12.5 -> +12.0 current exceptions raised: FE_INEXACT current rounding method: FE_TONEAREST   1.0/0.0 = inf +11.5 -> +11.0 +12.5 -> +12.0 current exceptions raised: FE_DIVBYZERO FE_INEXACT current rounding method: FE_DOWNWARD   current exceptions raised: FE_INEXACT current rounding method: FE_TONEAREST

[edit] References

[edit] See also

| | saves the environment, clears all status flags and ignores all future errors (function) [edit] | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | restores the floating-point environment and raises the previously raise exceptions (function) [edit] | | | default floating-point environment (macro constant) [edit] | | |