Espacios de nombres
Variantes
Acciones

std::copysign, std::copysignf, std::copysignl

De cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Funciones matemáticas comunes
Funciones
Operaciones básicas
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones exponenciales
(C++11)
(C++11)
(C++11)
(C++11)
Funciones de potencias
(C++11)
(C++11)
Funciones trigonométricas e hiperbólicas
(C++11)
(C++11)
(C++11)
Funciones de error y gamma
(C++11)
(C++11)
(C++11)
(C++11)
Operaciones de punto flotante del entero más cercano
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones de manipulación de punto flotante
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
copysign
(C++11)
Clasificación/comparación
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Constantes de macro
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Definido en el archivo de encabezado <cmath>
float       copysign (float mag, float sgn );
(1) (desde C++11)
(constexpr since C++23)
float       copysignf(float mag, float sgn );
(2) (desde C++11)
(constexpr since C++23)
double      copysign (double mag, double sgn );
(3) (desde C++11)
(constexpr since C++23)
longdouble copysign (longdouble mag, longdouble sgn );
(4) (desde C++11)
(constexpr since C++23)
longdouble copysignl(longdouble mag, longdouble sgn );
(5) (desde C++11)
(constexpr since C++23)
Promovido   copysign ( Aritmético1 mag, Aritmético2 sgn );
(6) (desde C++11)
(constexpr since C++23)
1-5) Compone un valor de punto flotante con la magnitud de mag y el signo de sgn.
6) Un conjunto de sobrecargas o una función de plantilla para todas las combinaciones de argumentos de tipo aritmético no cubiertas por (1-5). Si cualquier argumento es de tipo entero, se convierte a double. Si cualquier argumento es longdouble, entonces el tipo de retorno Promovido también es longdouble; de lo contrario, el tipo de retorno es siempre double.

Contenido

[editar]Parámetros

mag, sgn - Valores de punto flotante.

[editar]Valor de retorno

Si no ocurren errores, se devuelve el valor de punto flotante con la magnitud de mag y el signo de sgn.

Si mag es NaN, entonces se devuelve NaN con el signo de sgn.

Si sgn es -0, el resultado solo es negativo si la implementación admite el cero con signo de forma consistente en las operaciones aritméticas.

[editar]Manejo de errores

Esta función no está sujeta a ninguno de los errores especificados en math_errhandling.

Si la implementación admite la aritmética de punto flotante de la IEEE (IEC 60559):

[editar]Notas

std::copysign es la única manera portátil de manipular el signo de un valor NaN (también puede usarse signbit para examinar el signo de un NaN).

[editar]Ejemplo

#include <iostream>#include <cmath>   int main(){std::cout<<std::showpos<<"copysign(1.0,+2.0) = "<< std::copysign(1.0,+2.0)<<'\n'<<"copysign(1.0,-2.0) = "<< std::copysign(1.0,-2.0)<<'\n'<<"copysign(inf,-2.0) = "<< std::copysign(INFINITY,-2.0)<<'\n'<<"copysign(NaN,-2.0) = "<< std::copysign(NAN,-2.0)<<'\n';}

Salida:

copysign(1.0,+2.0) = 1 copysign(1.0,-2.0) = -1 copysign(inf,-2.0) = -inf copysign(NaN,-2.0) = -nan

[editar]Véase también

Valor absoluto de un valor de punto flotante (|x|)
(función)[editar]
(C++11)
Comprueba si el número dado es negativo
(función)[editar]
Documentación de C para copysign
close