Copy the sign bit from one number to another
#include <math.h> double copysign ( double x, double y); float copysignf ( float x, float y );
The copysign() and copysignf() functions return the magnitude of x and the sign bit of y.
If x is NAN, the function produces NAN with the sign of y.
The magnitude of x and the sign bit of y.
#include <stdio.h> #include <errno.h> #include <inttypes.h> #include <math.h> #include <fpstatus.h> int main(int argc, char** argv) { double a, b, c; a = 27.0; b = -5; c = copysign(a, b); printf("The magnitude of %f and sign of %f gives %f\n", a, b, c); return(0); }
produces the output:
The magnitude of 27.000000 and sign of -5.000000 gives -27.000000
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |