_copysign, _copysignl

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Float.h - Index


Header-Datei

float.h

Kategorie

Mathematische Routinen

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.

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

Portabilität

' POSIX Win32 ANSI C ANSI C++

_copysign

+

_copysignl

+