Namespaces
Variants

copysign, copysignf, copysignl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
(C23) (C23)
copysign
(C99)
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Défini dans l'en-tête <math.h>
float copysignf ( float x, float y ) ;
(1) (depuis C99)
double copysign ( double x, double y ) ;
(2) (depuis C99)
long double copysignl ( long double x, long double y ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define copysign(x, y)
(4) (depuis C99)
1-3) Compose une valeur à virgule flottante avec la magnitude de x et le signe de y .
4) Macro générique de type : Si un argument a le type long double , copysignl est appelé. Sinon, si un argument a un type entier ou le type double , copysign est appelé. Sinon, copysignf est appelé.

Table des matières

Paramètres

x, y - valeurs à virgule flottante

Valeur de retour

Si aucune erreur ne se produit, la valeur à virgule flottante avec la magnitude de x et le signe de y est retournée.

Si x est NaN, alors NaN avec le signe de y est retourné.

Si y est -0, le résultat est uniquement négatif si l'implémentation prend en charge le zéro signé de manière cohérente dans les opérations arithmétiques.

Gestion des erreurs

Cette fonction n'est sujette à aucune erreur spécifiée dans math_errhandling .

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),

Notes

copysign est le seul moyen portable de manipuler le signe d'une valeur NaN (pour examiner le signe d'un NaN, signbit peut également être utilisé).

Exemple

#include <math.h>
#include <stdio.h>
int main(void)
{
    printf("copysign(1.0,+2.0)      = %+.1f\n", copysign(1.0,+2.0));
    printf("copysign(1.0,-2.0)      = %+.1f\n", copysign(1.0,-2.0));
    printf("copysign(INFINITY,-2.0) = %f\n",    copysign(INFINITY,-2.0));
    printf("copysign(NAN,-2.0)      = %f\n",    copysign(NAN,-2.0));
}

Sortie possible :

copysign(1.0,+2.0)      = +1.0
copysign(1.0,-2.0)      = -1.0
copysign(INFINITY,-2.0) = -inf
copysign(NAN,-2.0)      = -nan

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.12.11.1 Les fonctions copysign (p: TBD)
  • 7.25 Mathématiques génériques <tgmath.h> (p: TBD)
  • F.10.8.1 Les fonctions copysign (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.12.11.1 Les fonctions copysign (p: TBD)
  • 7.25 Mathématiques génériques <tgmath.h> (p: TBD)
  • F.10.8.1 Les fonctions copysign (p: TBD)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.12.11.1 Les fonctions copysign (p: 255)
  • 7.25 Mathématiques génériques <tgmath.h> (p: 373-375)
  • F.10.8.1 Les fonctions copysign (p: 529)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.12.11.1 Les fonctions copysign (p: 236)
  • 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
  • F.9.8.1 Les fonctions copysign (p: 465)

Voir aussi

(C99) (C99)
calcule la valeur absolue d'une valeur en virgule flottante ( |x| )
(fonction)
(C99)
vérifie si le nombre donné est négatif
(macro de fonction)
Documentation C++ pour copysign