fp_precision()
Set or get the current precision
Synopsis:
#include <fpstatus.h>
int fp_precision( int newprecision );
Arguments:
- newprecision
- The new precision; one of:
- < 0 — return the current setting.
- _FP_PREC_FLOAT
- _FP_PREC_DOUBLE
- _FP_PREC_EXTENDED
- _FP_PREC_DOUBLE_EXTENDED
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.
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:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |