非常教程

C参考手册

数值 | Numerics

fmax

在头文件<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)

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,则返回另一个参数的值
  • 只有两个参数都是NaN,才会返回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):
    • 7.12.12.2 fmax函数(p:257-258)
    • 7.25类型通用数学<tgmath.h>(p:373-375)
    • F.10.9.2 fmax函数(p:530)
  • C99标准(ISO / IEC 9899:1999):
    • 7.12.12.2 fmax函数(p:238-239)
    • 7.22类型通用数学<tgmath.h>(p:335-337)
    • F.9.9.2 fmax函数(p:466)

扩展内容

isgreater(C99)

检查第一个浮点参数是否大于第二个(函数)

fmfminfminl(C99)(C99)(C99)

确定两个浮点值中较小的一个(函数)

| fmax的C ++文档 |

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。