当前位置: C语言 -- 标准库 -- <fenv.h> -- femode_t

femode_t类型


描述:

该类型是表示实现支持的动态浮点控制模式集(包括动态舍入方向模式。)的类型。

该类型的具体细节由实现决定,该类型值通过fegetmode函数获取,可以用作fesetmode函数的参数。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
/*类型femode_t范例*/

#include <fenv.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

#pragma STDC FENV_ACCESS ON

void specifiedModeValue(double value, int mode)
{
    femode_t originalMode;  //保存浮点控制模式的变量。

    //保存当前浮点控制模式。
    if(fegetmode(&originalMode))
    {
        exit(EXIT_FAILURE);
    }

    //修改当前舍入模式。
    fesetround(mode);

    //输出当前舍入模式下第一个实参的值。
    printf("nearbyint(%.2f) = %f\n", value, nearbyint(value));

    //恢复原先浮点控制模式。
    fesetmode(&originalMode);
}

int main(void)
{
    specifiedModeValue(2.55, FE_UPWARD);

    return 0;
}


可能输出:

nearbyint(2.55) = 3.000000

(注:编译时实现还未支持femode_t类型、fegetmode函数以及fesetmode函数。)


相关内容:
fenv_t 表示整个动态浮点环境的类型。
fexcept_t 表示浮点状态标志的类型。


主要参考资料:

1、ISO/IEC 9899:2024

2、IEEE 754:2019