📜  C++ fegetround()(1)

📅  最后修改于: 2023-12-03 14:59:44.830000             🧑  作者: Mango

C++ fegetround()

fegetround()是C++的一个函数,用于获取当前的浮点数舍入模式。该函数参考当前的舍入模式,并将其作为返回值,以保持一致性。

函数声明
int fegetround(void);
参数说明

该函数无需参数。

返回值

该函数返回当前浮点数的舍入模式,在以下值中的一个:

  • FE_DOWNWARD:向下舍入
  • FE_TOWARDZERO:朝零舍入
  • FE_UPWARD:向上舍入
  • FE_TONEAREST:四舍五入

如果无法获得舍入模式,则该函数将返回0。

示例

下面的代码片段展示了如何使用fegetround()获得当前的浮点数舍入模式:

#include <iostream>
#include <cfenv>

int main() 
{
    int mode = fegetround();
    
    switch (mode) 
    {
        case FE_DOWNWARD:
            std::cout << "Rounding Mode: FE_DOWNWARD" << std::endl;
            break;
        
        case FE_TOWARDZERO:
            std::cout << "Rounding Mode: FE_TOWARDZERO" << std::endl;
            break;
        
        case FE_UPWARD:
            std::cout << "Rounding Mode: FE_UPWARD" << std::endl;
            break;
        
        case FE_TONEAREST:
            std::cout << "Rounding Mode: FE_TONEAREST" << std::endl;
            break;
        
        default:
            std::cout << "Unable to determine rounding mode" << std::endl;
            break;
    }
    
    return 0;
}

该程序将打印当前的浮点数舍入模式,例如:

Rounding Mode: FE_TONEAREST
注意事项

使用fegetround()函数时,需要包含头文件<cfenv>

使用该函数时,应尽量保持一致性,避免混合使用多种舍入模式。