The copysignf
function returns the value formed by combining the magnitude of the first parameter
and the sign of the second parameter
.
The copysignf
function is a variation of the copysign
function. Thef
in the variation refers to the float
datatype of the parameter and return value.
The copysignf
function can be accessed via the math.h
library.
float copysignf(float x, float y)
The copysignf
function takes two parameters of the float
datatype.
If no errors occur, the copysignf
function returns a value of float
datatype. This value has the magnitude of the first parameter
and the sign of the second parameter
.
If the first parameter
is NaN
(not a number), then the return value is NaN
with the sign of the second parameter
.
If the second parameter
is -0
, a negative value is returned (if a signed zero is supported in arithmetic operations).
The
copysignf
function provides a way to manipulate the sign ofNaN
.
The following code shows the return values associated to different kinds of parameters:
#include <stdio.h>#include <math.h>int main(){printf("copysignf(10,+4.0) = %f\n", copysignf(10,+4.0));printf("copysignf(20,-8.0) = %f\n", copysignf(20,-8.0));printf("copysignf(INFINITY,-2.0) = %f\n", copysignf(INFINITY,-2.0)); //%f is the string formatter for float numbersprintf("copysignf(NAN,-3.0) = %f\n", copysignf(NAN,-3.0));}
Free Resources