Round to a truncated integer value
Synopsis:
#include <math.h>
double trunc(double x);
float truncf(float x);
long double truncl(long double x);
Arguments:
- x
- The number that you want to truncate.
Library:
- libm
- The general-purpose math library.
- libm-sve
- (QNX Neutrino 7.1 or later)
A library that optimizes the code for ARMv8.2 chips that have Scalable Vector Extension hardware.
Your system requirements will determine how you should work with these libraries:
- If you want only selected processes to run with the SVE version, you can include both libraries in your OS image
and use the -l m or -l m-sve option to
qcc
to link explicitly against the appropriate one.
- If you want all processes to use the SVE version, include libm-sve.so in your OS image
and set up a symbolic link from libm.so to libm-sve.so.
Use the -l m option to
qcc
to link against the library.
Note:
Compile your program with the -fno-builtin option to prevent the compiler from using a
built-in version of the function.
Description:
The trunc(), truncf(), and truncl() functions
round their argument to the integer value, in floating format, nearest to but no larger in magnitude
than the argument.
To check for error situations, use
feclearexcept()
and
fetestexcept().
For example:
- Call feclearexcept(FE_ALL_EXCEPT) before calling
trunc(), truncf(), or truncl().
- On return, if fetestexcept(FE_ALL_EXCEPT)
is nonzero, then an error has occurred.
Returns:
The truncated integer value.
The result has the same sign as x.
If x is: |
These functions return: |
Errors: |
±0.0 |
x |
— |
±Inf |
x |
— |
NaN |
NaN |
— |
These functions raise FE_INEXACT if the FPU reports that
the result can't be exactly represented as a floating-point number.
Classification:
C11,
POSIX 1003.1
Safety: |
|
Cancellation point |
No |
Interrupt handler |
Yes |
Signal handler |
Yes |
Thread |
Yes |