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
Definiert im Header <math.h>
float copysignf ( float x, float y ) ;
(1) (seit C99)
double copysign ( double x, double y ) ;
(2) (seit C99)
long double copysignl ( long double x, long double y ) ;
(3) (seit C99)
Definiert im Header <tgmath.h>
#define copysign(x, y)
(4) (seit C99)
1-3) Bildet einen Gleitkommawert mit dem Betrag von x und dem Vorzeichen von y .
4) Typgenerisches Makro: Wenn ein Argument den Typ long double hat, wird copysignl aufgerufen. Andernfalls, wenn ein Argument ganzzahligen Typ oder den Typ double hat, wird copysign aufgerufen. Andernfalls wird copysignf aufgerufen.

Inhaltsverzeichnis

Parameter

x, y - Gleitkommawerte

Rückgabewert

Wenn keine Fehler auftreten, wird der Gleitkommawert mit der Größe von x und dem Vorzeichen von y zurückgegeben.

Wenn x NaN ist, wird NaN mit dem Vorzeichen von y zurückgegeben.

Wenn y -0 ist, ist das Ergebnis nur dann negativ, wenn die Implementierung das vorzeichenbehaftete Null konsistent in arithmetischen Operationen unterstützt.

Fehlerbehandlung

Diese Funktion unterliegt keinen der in math_errhandling spezifizierten Fehler.

Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt,

Hinweise

copysign ist die einzige portable Methode, um das Vorzeichen eines NaN-Werts zu manipulieren (um das Vorzeichen eines NaN zu untersuchen, kann auch signbit verwendet werden).

Beispiel

#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));
}

Mögliche Ausgabe:

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

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.12.11.1 Die copysign-Funktionen (S.: TBD)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S.: TBD)
  • F.10.8.1 Die copysign-Funktionen (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.12.11.1 Die copysign-Funktionen (S.: TBD)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S.: TBD)
  • F.10.8.1 Die copysign-Funktionen (S.: TBD)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.12.11.1 Die copysign-Funktionen (S. 255)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S. 373-375)
  • F.10.8.1 Die copysign-Funktionen (S. 529)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.12.11.1 Die copysign-Funktionen (S. 236)
  • 7.22 Typgenerische Mathematik <tgmath.h> (S. 335-337)
  • F.9.8.1 Die copysign-Funktionen (S. 465)

Siehe auch

(C99) (C99)
berechnet den absoluten Wert eines Gleitkommawerts ( |x| )
(Funktion)
(C99)
prüft, ob die gegebene Zahl negativ ist
(Funktionsmakro)
C++-Dokumentation für copysign