fdim
, , fdimf
fdiml
Określa dodatnią różnicę między wartościami pierwszymi i drugimi.
Składnia
double fdim(
double x,
double y
);
float fdim(
float x,
float y
); //C++ only
long double fdim(
long double x,
long double y
); //C++ only
float fdimf(
float x,
float y
);
long double fdiml(
long double x,
long double y
);
#define fdim(X) // Requires C11 or higher
Parametry
x
Pierwsza wartość.
y
Druga wartość.
Wartość zwracana
Zwraca dodatnią różnicę między wartościami x
i y
:
Wartość zwracana | Scenariusz |
---|---|
x-y |
jeśli x >y |
0 | if x <= y |
W przeciwnym razie może zwrócić jeden z następujących błędów:
Problem | Powrót |
---|---|
Błąd zakresu przepełnienia | +HUGE_VAL, +HUGE_VALF lub +HUGE_VALL |
Błąd zakresu podpełnienia | poprawna wartość (po zaokrągleniu) |
x lub y ma wartość NaN |
NaN |
Błędy są zgłaszane zgodnie z określonymi w pliku _matherr
.
Uwagi
Ponieważ język C++ umożliwia przeciążenie, można wywołać przeciążenia tych operacji fdim
, które przyjmują i zwracają float
i long double
typy. W programie języka C, chyba że używasz makra <tgmath.h> do wywołania tej funkcji, fdim
zawsze przyjmuje i zwraca wartość double
.
Jeśli używasz makra <tgmath.h>fdim()
, typ argumentu określa, która wersja funkcji jest zaznaczona. Aby uzyskać szczegółowe informacje, zobacz Typy ogólne matematyczne .
Z wyjątkiem obsługi NaN ta funkcja jest równoważna fmax(x - y, 0)
.
Wymagania
Function | Nagłówek języka C | Nagłówek języka C++ |
---|---|---|
fdim , , fdimf fdiml |
<math.h> | <cmath> |
fdim Makro |
<tgmath.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Zobacz też
Odwołanie do funkcji alfabetycznej
fmax
, , fmaxf
fmaxl
abs
, , labs
, , llabs
_abs64