C 庫 - fegetround() 函式



C 的fenvfegetround() 函式是浮點環境的一部分,可用於訪問當前的舍入模式。此模式表示以四捨五入形式表示的浮點數。此函式的用法應用於圖形、數值分析和財務計算等各個領域。

語法

以下是 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
廣告