copysign, copysignf, copysignl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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) |
x
und dem Vorzeichen von
y
.
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,
- Der zurückgegebene Wert ist exakt ( FE_INEXACT wird niemals ausgelöst) und unabhängig vom aktuellen Rundungsmodus .
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
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 (
\(\small{|x|}\)
|x|
)
(Funktion) |
|
(C99)
|
prüft, ob die gegebene Zahl negativ ist
(Funktionsmakro) |
|
C++-Dokumentation
für
copysign
|
|