_copysign, _copysignl
Nach oben zu Float.h - Index
Inhaltsverzeichnis
Header-Datei
float.h
Prototyp
double _copysign(double da, double db);
long double _copysignl(long double lda, long double ldb);
Beschreibung
Gibt das Argument da mit demselben Vorzeichen wie das Argument db zurück. Beide Argumente sind Gleitkommawerte mit doppelter Genauigkeit.
_copysignl ist die long double-Version; sie übernimmt ein Argument vom Typ long double und gibt ein Ergebnis vom Typ long double zurück.
Rückgabewert
Gibt einen Wert zurück, der dieselbe Größe und denselben Exponenten wie der erste Wert, aber das Vorzeichen des zweiten Werts hat. Es wird kein Fehlerwert zurückgegeben. Wenn Sie als zweiten Parameter 0 angeben, ist der Rückgabewert der erste Parameter mit derselben Größe und einem +-Zeichen.
Portabilität
POSIX | ANSI C | ANSI C++ | Win32 | Win64 | OS X | |
---|---|---|---|---|---|---|
_copysign | + | |||||
_copysignl | + |
Beispiel
#include <float.h>
#include <stdio.h>
/* Vergleicht a mit b. Ignoriert aber das Vorzeichen von b und verwendet das von a */
int compare_no_sign(double a, double b) {
/* Ermitteln eines Wertes von b mit demselben Vorzeichen wie a */
double b_as_a = '''_copysign'''(b, a);
/* Einfachen doppelten Vergleich ausführen */
if (a > b_as_a)
return 1;
else if (a < b_as_a)
return -1;
else
return 0;
}