Namensräume
Varianten
Aktionen

copysign, copysignf, copysignl

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
(C23)(C23)
copysign
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in 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 in Header <tgmath.h>
#define copysign(x, y)
(4) (seit C99)
1-3) Erzeugt einen Gleitkommawert mit dem Betrag von x und dem Vorzeichen von y.
4) Typ-generische Makro: Wenn ein Argument vom Typ long double ist, wird copysignl aufgerufen. Andernfalls, wenn ein Argument vom ganzzahligen Typ oder vom Typ double ist, wird copysign aufgerufen. Andernfalls wird copysignf aufgerufen.

Inhalt

[bearbeiten] Parameter

x, y - Gleitkommazahlen

[bearbeiten] Rückgabewert

Wenn keine Fehler auftreten, wird der Gleitkommawert mit dem Betrag 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 Vorzeichen-Null konsistent in arithmetischen Operationen unterstützt.

[bearbeiten] Fehlerbehandlung

Diese Funktion unterliegt keinen Fehlern, die in math_errhandling spezifiziert sind.

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

[bearbeiten] Hinweise

copysign ist der einzige portable Weg, um das Vorzeichen eines NaN-Wertes zu manipulieren (um das Vorzeichen eines NaN zu untersuchen, kann auch signbit verwendet werden).

[bearbeiten] 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

[bearbeiten] Referenzen

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

[bearbeiten] Siehe auch

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