fp_precision()

Set or get the current precision

Synopsis:

#include <fpstatus.h>

int fp_precision( int newprecision );

Arguments:

newprecision
The new precision; one of:

Library:

libm

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

Description:

The fp_precision() function sets or gets the current floating-point precision, depending on the value of newprecision.

Returns:

If newprecision is less than 0, the current precision; otherwise, the previous precision.


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>

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

   ret = fp_precision(-1);
   printf("Precision: ");
   if (ret == _FP_PREC_FLOAT)
      printf("Float \n");
   else if (ret == _FP_PREC_DOUBLE)
      printf("Double \n");
   else if (ret == _FP_PREC_EXTENDED)
      printf("Extended \n");
   else if (ret == _FP_PREC_DOUBLE_EXTENDED)
      printf("128 Bit \n");
   else if (ret == _FP_PREC_EXTENDED)
      printf("Extended \n");
   else if (ret == _FP_PREC_DOUBLE_EXTENDED)
      printf("128 Bit \n");
   else
      printf("Error \n");

   return(0);
}

Classification:

QNX Neutrino

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

See also:

fp_exception_mask(), fp_exception_value(), fp_rounding(), fp_setenv()