8

C (特に c11) の偶数への丸めの中間タイに依存するコードを書いています。FE_TONEAREST として丸めモードで rint を使用する場合、FE_NEAREST でタイがどのように処理されるかを示す保証が C 標準に見つかりませんでした。ISO C 標準の 509 ページには、次のように記載されています。

<fenv.h> の fegetround および fesetround 関数は、<fenv.h> の丸め方向マクロ (FE_TONEAREST、FE_UPWARD、FE_DOWNWARD、FE_TOWARDZERO) および値 0、1 によって表される IEC 60559 有向丸めモードから選択する機能を提供します。 FLT_ROUNDS の 、2、および 3 は、IEC 60559 指示丸めモードです。

ただし、丸めモードに関する IEC 60559 標準のドキュメントは見つかりません。私のテスト マシンでは、動作は FE_TONEAREST で同数が偶数に丸められますが、これが c11 標準によって強制され、実装定義ではないことを確認したいと思います。

4

1 に答える 1