📅  最后修改于: 2023-12-03 14:59:44.859000             🧑  作者: Mango
在C++中,fesetround()
是一个用于设置浮点算术舍入模式的函数。该函数接受一个枚举参数,表示要使用的舍入模式。
#include <cfenv>
#pragma STDC FENV_ACCESS ON
int fesetround (int mode);
上述代码将包含了fesetround()
函数的头文件cfenv
。在使用该函数之前,必须使用#pragma STDC FENV_ACCESS ON
来开启对浮点环境的访问。
fesetround()
函数接受一个整数参数mode
,表示要使用的舍入模式。以下是舍入模式的枚举类型:
enum {
FE_DOWNWARD = -1, // 向下舍入模式
FE_TONEAREST = 0, // 四舍五入模式
FE_TOWARDZERO = 1, // 向零舍入模式
FE_UPWARD = 2 // 向上舍入模式
};
调用fesetround(mode)
将设置浮点环境的舍入模式。
下面是一个示例代码:
#include <iostream>
#include <cfenv>
#pragma STDC FENV_ACCESS ON
int main() {
// 初始舍入模式为四舍五入
std::cout << "初始舍入模式为 " << std::fegetround() << std::endl;
// 更改舍入模式为向上舍入
std::fesetround(FE_UPWARD);
std::cout << "当前舍入模式为 " << std::fegetround() << std::endl;
// 更改舍入模式为向下舍入
std::fesetround(FE_DOWNWARD);
std::cout << "当前舍入模式为 " << std::fegetround() << std::endl;
return 0;
}
运行结果为:
初始舍入模式为 0
当前舍入模式为 2
当前舍入模式为 -1
fesetround()
函数只能修改当前线程的浮点环境的舍入模式。