名 前
nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl − 最 も 近 い 整 数 に 丸 め る
書 式
#include <math.h>
double
nearbyint(double x);
float nearbyintf(float x);
long double nearbyintl(long double x);
double
rint(double x);
float rintf(float x);
long double rintl(long double x);
−lm で リ ン ク す る 。
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
nearbyint(), nearbyintf(), nearbyintl():
_XOPEN_SOURCE >= 600
|| _POSIX_C_SOURCE >= 200112L ||
_ISOC99_SOURCE;
or cc −std=c99
rint():
_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED ||
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or cc −std=c99
rintf(), rintl():
_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or cc −std=c99
説 明
関 数 nearbyint(), nearbyintf(), and nearbyintl() は 、 現 在 の 丸 め 方 向 (fesetround(3) 参 照 ) で 引 き 数 を 浮 動 小 数 点 形 式 の 整 数 に 丸 め る 。 inexact 例 外 を 出 さ な い 。 関 数 rint(), rintf(), and rintl() も 同 じ よ う な 動 作 を す る が 、 結 果 が 引 き 数 と 異 な る 場 合 に inexact 例 外 (FE_INEXACT) を 出 す (こ の 例 外 は fetestexcept(3) 経 由 で 確 認 可 能 )。
返 り 値
こ れ ら の 関 数 は 丸 め た 整 数 値 を 返 す 。
x が 整 数 、 +0、 −0、 NaN、 無 限 の い ず れ か の 場 合 、 x そ の も の が 返 さ れ る 。
エ ラ ー
エ ラ ー は 発 生 し な い 。 POSIX.1−2001 に は オ ー バ ー フ ロ ー で の 範 囲 エ ラ ー (range error) の 記 載 が あ る 。 「 注 意 」 の 節 を 参 照 の こ と 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 nearbyint(), nearbyintf(), nearbyintl(), rint(), rintf(), rintl() は ス レ ッ ド セ ー フ で あ る 。
準 拠
C99, POSIX.1−2001.
注 意
SUSv2 と POSIX.1−2001 に は オ ー バ ー フ ロ ー に 関 す る 記 述 が あ り 、 オ ー バ ー フ ロ ー の 場 合 に は 、 errno を ERANGE に 設 定 す る か 、 FE_OVERFLOW 例 外 を 発 生 す る こ と と さ れ て い る 。 実 際 の と こ ろ 、 ど の 現 行 の マ シ ン で も 結 果 が オ ー バ ー フ ロ ー を 起 こ す こ と は な い の で 、 こ の エ ラ ー 処 理 は 意 味 が な い 。 (よ り 正 確 に 言 う と 、 オ ー バ ー フ ロ ー は 指 数 部 の 最 大 値 が 仮 数 部 を 表 す ビ ッ ト の 数 よ り 小 さ い 場 合 に し か 起 こ ら な い 。 IEEE−754 規 格 の 32 ビ ッ ト と 64 ビ ッ ト の 浮 動 小 数 で は 、 指 数 部 の 最 大 値 は そ れ ぞ れ 128 と 1024 で あ り 、 仮 数 部 の ビ ッ ト 数 は そ れ ぞ れ 24 と 53 で あ る 。 ) 丸 め た 値 を 整 数 型 に 格 納 し た 場 合 に は 、 お そ ら く こ の 関 数 で は な く lrint(3) に 載 っ て い る 関 数 の ど れ か を 使 い た い の だ ろ う 。
関 連 項 目
ceil(3), floor(3), lrint(3), round(3), trunc(3)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。