fp_rounding()

Set or get the current rounding

Synopsis:

#include <fpstatus.h>

int fp_rounding( int newrounding );

Arguments:

newrounding
The new rounding; one of:
  • < 0 — return the current setting.
  • _FP_ROUND_NEAREST
  • _FP_ROUND_ZERO
  • _FP_ROUND_POSITIVE
  • _FP_ROUND_NEGATIVE

Library:

libm

Use the -l m option to qcc to link against this library.

Description:

The fp_rounding() function sets or gets the current rounding mode, depending on the value of newrounding.

Returns:

If newrounding is less than 0, the current rounding mode; otherwise, the previous mode.

Note: This function doesn't return a special value to indicate that an error occurred. If you want to check for errors, set errno to 0, call the function, and then check errno again.

Examples:

#include <fpstatus.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char** argv) 
{
   int ret;

   ret = fp_rounding(-1);
   printf("Rounding mode: ");
   if (ret == _FP_ROUND_NEAREST)
      printf("Nearest \n");
   else if (ret == _FP_ROUND_POSITIVE)
      printf("Positive \n");
   else if (ret == _FP_ROUND_NEGATIVE)
      printf("Negative \n");
   else if (ret == _FP_ROUND_ZERO)
      printf("To Zero \n");
   else
      printf("Error \n");

   return EXIT_SUCCESS;
}

Classification:

QNX Neutrino

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes