fmax, fmaxf, fmaxl
Определено в заголовочном файле <math.h> | ||
|---|---|---|
float fmaxf( float x, float y ); | (1) | (начиная с C99) |
double fmax( double x, double y ); | (2) | (начиная с C99) |
long double fmaxl( long double x, long double y ); | (3) | (начиная с C99) |
Определено в заголовочном файле <tgmath.h> | ||
#define fmax( x, y ) | (4) | (начиная с C99) |
1-3) Возвращает большее из двух аргументов с плавающей точкой, рассматривая NaN как отсутствующие данные (если один аргумент — NaN, а другой — числовое значение, выбирается числовое значение).
4) Обобщённый по типу макрос: если тип любого аргумента —
long double, вызывается fmaxl. В противном случае, если какой-либо аргумент имеет целочисленный тип или тип double, вызывается fmax. В противном случае вызывается fmaxf.Параметры
| x, y | - | значения с плавающей точкой |
Возвращаемое значение
В случае успеха возвращает большее из двух значений с плавающей точкой. Возвращаемое значение является точным и не зависит от режимов округления.
Обработка ошибок
На эту функцию не распространяются условия ошибок, указанные в math_errhandling.
Если реализация поддерживает арифметику с плавающей точкой IEEE (IEC 60559),
- Если один из двух аргументов — NaN, возвращается значение другого аргумента.
- NaN возвращается, только если оба аргумента — NaN.
Примечания
Эта функция не обязана учитывать знак нуля, хотя некоторые реализации дополнительно гарантируют, что если один аргумент равен +0, а другой — -0, то возвращается +0.
Пример
#include <math.h>
#include <stdio.h>
int main(void)
{
printf("fmax(2,1) = %f\n", fmax(2,1));
printf("fmax(-Inf,0) = %f\n", fmax(-INFINITY,0));
printf("fmax(NaN,-1) = %f\n", fmax(NAN,-1));
}
Вывод:
fmax(2,1) = 2.000000 fmax(-Inf,0) = 0.000000 fmax(NaN,-1) = -1.000000
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.12.12.2 Функции fmax (стр.: TBD)
- 7.25 Обобщённая по типу математика <tgmath.h> (стр.: TBD)
- F.10.9.2 Функции fmax (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.12.12.2 Функции fmax (стр.: 188)
- 7.25 Обобщённая по типу математика <tgmath.h> (стр.: 397)
- F.10.9.2 Функции fmax (стр.: 386)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.12.12.2 Функции fmax (стр.: 257-258)
- 7.25 Обобщённая по типу математика <tgmath.h> (стр.: 373-375)
- F.10.9.2 Функции fmax (стр.: 530)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.12.12.2 Функции fmax (стр.: 238-239)
- 7.22 Обобщённая по типу математика <tgmath.h> (стр.: 335-337)
- F.9.9.2 Функции fmax (стр.: 466)
См. также
|
(C99) | проверяет, больше ли первый аргумент с плавающей точкой второго (макрос-функция) |
|
(C99)(C99)(C99) | определяет меньшее из двух значений с плавающей точкой (функция) |
Документация C++ для fmax |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/math/fmax