最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function
<cfenv>

# std::fegetround(C++11)

    namespace std {
      int fegetround();
    }

## 概要

浮動小数点数の現在の丸め方式を取得する。

## 戻り値

現在設定されている浮動小数点数の丸め方式を返す。

## 例

    #include <iostream>
    #include <cfenv>

    void print_round_mode(int round_mode)
    {
      switch (round_mode) {
        case FE_DOWNWARD: std::cout << "downward" << std::endl; break;
        case FE_TONEAREST: std::cout << "to nearest" << std::endl; break;
        case FE_TOWARDZERO: std::cout << "toward zero" << std::endl; break;
        case FE_UPWARD: std::cout << "upward" << std::endl; break;
      }
    }

    int main()
    {
      // デフォルト (FE_TONEAREST)
      print_round_mode(std::fegetround());

      // 切り下げに設定する
      std::fesetround(FE_DOWNWARD);
      print_round_mode(std::fegetround());
    }

### 出力

    to nearest
    downward

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.0 ✅
- GCC: 4.3.0 ✅
- ICC: ??
- Visual C++: 2013 ✅, 2015 ✅
  - コンパイルオプション`/fp:strict`または`#pragma fenv_access (on)`が必要。さもなくば、正しく動作しないおそれがある。