nearbyint | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


nearbyint関数

概要

小数点以下を、現在の丸め方向に従って丸める

ヘッダ

math.h

形式

double nearbyint(double x);

引数

x

対象の浮動小数点数。

戻り値

引数x の小数点以下を丸めた整数値。

詳細

小数点以下を、現在の丸め方向に従って丸めて、その結果の整数値を返す。なお、丸めた結果が、実引数に与えた値と一致しなくても、浮動小数点例外 FE_INEXACT を発生させないという点でだけが、rint関数と異なる。
現在の丸め方向は、fegetround関数で取得できる。設定の変更は、fesetround関数で行う。

注意
使用例
#include <fenv.h>
#include <math.h>
#include <stdio.h>

#if defined(_MSC_VER)
#pragma fenv_access (on)
#else
#pragma STDC FENV_ACCESS ON
#endif

void nearbyint_test(int round)
{
    if (fesetround(round) == 0) {
        printf("%lf\n", nearbyint(3.1));
        printf("%lf\n", nearbyint(3.9));
        printf("%lf\n", nearbyint(-3.1));
        printf("%lf\n", nearbyint(-3.9));
    }
    else {
        puts("not supported.");
    }
}

int main(void)
{
    puts("[ FE_TONEAREST ]");
    nearbyint_test(FE_TONEAREST);

    puts("[ FE_UPWARD ]");
    nearbyint_test(FE_UPWARD);

    puts("[ FE_DOWNWARD ]");
    nearbyint_test(FE_DOWNWARD);

    puts("[ FE_TOWARDZERO ]");
    nearbyint_test(FE_TOWARDZERO);
}

実行結果:

[ FE_TONEAREST ]
3.000000
4.000000
-3.000000
-4.000000
[ FE_UPWARD ]
4.000000
4.000000
-3.000000
-3.000000
[ FE_DOWNWARD ]
3.000000
3.000000
-4.000000
-4.000000
[ FE_TOWARDZERO ]
3.000000
3.000000
-3.000000
-3.000000
関連

float型バージョンの nearbyintf関数と、long double型バージョンの nearbyintl関数がある。
丸めの方法を、fesetround関数で変更できる。
丸めた結果が、実引数の値と違ったときに、浮動小数点例外を発生させたいのなら、rint関数を使う。

解説章

第48章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗

 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る