_copysign, _copysignl

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Float.h - Index


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 macOS
_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;
}