C
数值 | Numerics

fmax

fmax, fmaxf, fmaxl

在头文件中定义
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)
Defined in header <tgmath.h>
#define fmax( x, y )(4)(自C99)

1-3)返回两个浮点参数中较大的一个,将NaN视为缺失数据(在NaN和数值之间选择数值)。

4)类型泛型宏:如果任何参数的类型为long double,则调用fmaxl。 否则,如果任何参数具有整数类型或类型为double,则调用fmax。 否则,调用fmaxf。

参数

x, y-floating point values

返回值

如果成功,则返回两个浮点值中较大的一个。返回的值是精确的,并不取决于任何舍入模式。

错误处理

此函数不受math_errhandling中指定的任何错误条件的约束。

如果实现支持IEEE浮点运算(IEC 60559),

  • 如果两个参数之一是NaN,则返回另一个参数的值

注意

该函数不要求对零符号敏感,但有些实现还强制规定,如果一个参数为+0,另一个为-0,则返回+0。

#include <stdio.h> #include <math.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

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

isgreater(C99)检查第一个浮点参数是否大于第二个(函数)
fmfminfminl(C99)(C99)(C99)确定两个浮点值中较小的一个(函数)

| fmax的C ++文档 |