- 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 程式設計資源
- C 程式設計 - 教程
- C - 有用資源
C 庫 - fesetround() 函式
C 的fenv 庫 fesetround() 函式設定算術運算(浮點數)的舍入模式。在將此函式應用於實際應用時,需要根據浮點數進行特定計算,例如銀行/金融軟體始終將值舍入為零(利息計算)。
語法
以下是 fesetround() 函式的 C 庫語法。
int fesetround(int round);
引數
此函式僅接受一個引數,該引數為整數。以下是確定所需值(舍入)的引數列表:
FE_TONEAREST:此引數定義舍入到最接近的,即零。
FE_DOWNWARD:此引數定義將值舍入到負無窮大。
FE_UPWARD:此引數定義將值舍入到正無窮大。
FE_TOWARDZERO:此引數定義將值舍入到零。
返回值
如果成功,此函式返回一個整數值(零)。如果引數不是受支援的舍入模式,則返回非零值。
示例 1
以下是一個基本的 C 庫程式,將引數 FE_TONEAREST 設定為 fesetround() 函式以檢視其演示。
#include <stdio.h>
#include <fenv.h>
#include <math.h>
int main() {
double value = 9.5;
double results[4];
// Set rounding modes and perform calculations
fesetround(FE_TONEAREST);
results[0] = nearbyint(value);
fesetround(FE_DOWNWARD);
results[1] = nearbyint(value);
fesetround(FE_UPWARD);
results[2] = nearbyint(value);
fesetround(FE_TOWARDZERO);
results[3] = nearbyint(value);
// Print results
printf("Rounding FE_TONEAREST: %f\n", results[0]);
printf("Rounding FE_DOWNWARD: %f\n", results[1]);
printf("Rounding FE_UPWARD: %f\n", results[2]);
printf("Rounding FE_TOWARDZERO: %f\n", results[3]);
return 0;
}
輸出
以上程式碼產生以下結果:
Rounding mode set to FE_TONEAREST successfully.
示例 2
下面的程式演示了每個引數,這些引數將舍入模式的值與單個計算進行比較。
#include <stdio.h>
#include <fenv.h>
#include <math.h>
int main() {
double value = 9.5;
double results[4];
// Set rounding modes and perform calculations
fesetround(FE_TONEAREST);
results[0] = nearbyint(value);
fesetround(FE_DOWNWARD);
results[1] = nearbyint(value);
fesetround(FE_UPWARD);
results[2] = nearbyint(value);
fesetround(FE_TOWARDZERO);
results[3] = nearbyint(value);
// Print results
printf("Rounding FE_TONEAREST: %f\n", results[0]);
printf("Rounding FE_DOWNWARD: %f\n", results[1]);
printf("Rounding FE_UPWARD: %f\n", results[2]);
printf("Rounding FE_TOWARDZERO: %f\n", results[3]);
return 0;
}
輸出
執行上述程式碼後,我們將獲得以下結果:
Rounding FE_TONEAREST: 10.000000 Rounding FE_DOWNWARD: 9.000000 Rounding FE_UPWARD: 10.000000 Rounding FE_TOWARDZERO: 9.000000
示例 3
在此程式中,我們設定舍入模式(浮點數)以執行除法任務。
#include <stdio.h>
#include <fenv.h>
int main() {
// Set rounding mode to upward
fesetround(FE_UPWARD);
// Perform a division
double result = 10.0 / 3.0;
printf("Result with FE_UPWARD: %f\n", result);
return 0;
}
輸出
執行上述程式碼後,我們將獲得以下結果:
Result with FE_UPWARD: 3.333334
c_library_fenv_h.htm
廣告