fmax, fmaxf, fmaxl

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
fmax
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数函数
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮点数操作函数
(C99)(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
类型
(C99)(C99)
宏常量
 
定义于头文件 <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) 返回二个浮点参数的较大者,把 NaNs 当做缺失数据(在 NaN 和数值间选择数值)。
4) 泛型宏:若任一参数拥有 long double 类型,则调用 fmaxl 。否则,若任一参数拥有整数类型或 double 类型,则调用 fmax 。否则调用 fmaxf

参数

x, y - 浮点值

返回值

若成功,则返回二个浮点值的较大者。返回值准确且不依赖任何舍入模式。

错误处理

此函数不受制于任何指定于 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 standard (ISO/IEC 9899:2011):
  • 7.12.12.2 The fmax functions (p: 257-258)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.9.2 The fmax functions (p: 530)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.12.2 The fmax functions (p: 238-239)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.9.2 The fmax functions (p: 466)

参阅

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