丸め処理(rounding)

丸めモード

最近値丸め(Round to Nearest)
+∞方向への丸め(Round toward +∞)
−∞方向への丸め(Round toward -∞)
0方向への丸め(Round toward 0)

参考 C++/C99 の fesetround() 関数

C++/C99 では,fesetround() 関数を使うことで,丸めモードを変更できる.


#include <stdio.h>
#include <fenv.h>
#include <math.h>

int main(void)
{
    double f = 5.5;
    int d;

    fesetround(FE_TOWARDZERO);
    d = rint(f);
    printf("FE_TOWARDZERO: %d\n", d);

    fesetround(FE_TONEAREST);
    d = rint(f);
    printf("FE_TONEAREST:  %d\n", d);

    return 0;
}

結果
FE_TOWARDZERO: 5
FE_TONEAREST:  6

サンプル プログラムのダウンロード


はたいたかし
2004-01-19 初稿
2006-10-30 改訂3
2010-12-20 fesetround() 関数の情報を追加
トップ > 開発ツール > IEEE 754 浮動小数点演算