- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - fegetround() 函数
C 的fenv库 fegetround() 函数是浮点环境的一部分,可用于访问当前的舍入模式。此模式表示以四舍五入形式表示的浮点数。此函数的用法应用于图形、数值分析和财务计算等各个领域。
语法
以下是 fegetround() 函数的 C 库语法。
int fegetround(void);
参数
此函数不接受任何参数。
返回值
此函数返回表示以下舍入模式之一的整数值:
FE_TONEAREST:此参数定义舍入到最接近的,即零。
FE_DOWNWARD:此参数定义向负无穷大舍入的值。
FE_UPWARD:此参数定义向正无穷大舍入的值。
FE_TOWARDZERO:此参数定义舍入到零的值。
示例 1
以下是显示 fegetround() 函数用法的基本 C 库程序。
#include <stdio.h> #include <fenv.h> int main() { int round_mode = fegetround(); printf("Current rounding mode: %d\n", round_mode); return 0; }
输出
以上代码产生以下结果:
Current rounding mode: 0
示例 2
下面的程序首先检查当前的舍入模式并打印其值。然后,我们使用 fesetround 设置参数 FE_DOWNWARD,该参数确定向负无穷大的值,并显示结果。
#include <stdio.h> #include <fenv.h> int main() { // Check current rounding mode int round_mode = fegetround(); printf("Current rounding mode: %d\n", round_mode); // Set rounding mode to downward fesetround(FE_DOWNWARD); round_mode = fegetround(); printf("Rounding mode after setting to FE_DOWNWARD: %d\n", round_mode); return 0; }
输出
执行以上代码后,我们得到以下结果:
Current rounding mode: 0 Rounding mode after setting to FE_DOWNWARD: 1024
示例 3
fegetround() 接受参数 FE_TONEAREST 来执行使用 rint 函数的舍入计算任务,该函数将接受的参数舍入为整数。最后,输出显示不同的舍入模式如何影响 rint 函数的结果。
#include <stdio.h> #include <fenv.h> #include <math.h> int main() { // Set rounding mode to nearest fesetround(FE_TONEAREST); // Perform a calculation double result = rint(3.5); printf("Result with FE_TONEAREST: %f\n", result); // Change rounding mode to toward zero fesetround(FE_TOWARDZERO); // Perform the same calculation result = rint(3.5); printf("Result with FE_TOWARDZERO: %f\n", result); return 0; }
输出
执行以上代码后,我们得到以下结果:
Result with FE_TONEAREST: 4.000000 Result with FE_TOWARDZERO: 3.000000
c_library_fenv_h.htm
广告