Manpages

名 前

fmod, fmodf, fmodl − 浮 動 小 数 点 剰 余 関 数

書 式

#include <math.h>

double fmod(double x, double y);
float fmodf(float
x, float y);
long double fmodl(long double
x, long double y);

−lm で リ ン ク す る 。

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

fmodf(), fmodl():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or cc −std=c99

説 明

fmod() 関 数 は xy で 割 っ た 浮 動 小 数 点 剰 余 を 計 算 す る 。 返 り 値 は xn * y で あ る 。 こ こ で 、 nx / y の 商 を ゼ ロ に 向 か う 方 向 で 整 数 値 に 丸 め た も の で あ る 。

返 り 値

成 功 す る と 、 こ れ ら の 関 数 は − n*y を 返 す 。 n は 、 返 り 値 が x と 同 じ 符 号 で 、 そ の 絶 対 値 が y の 絶 対 値 よ り も 小 さ く な る よ う な 整 数 で あ る 。

xy が NaN の 場 合 、 NaN が 返 さ れ る 。

x が 無 限 大 の 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 NaN が 返 さ れ る 。

y が 0 の 場 合 、 領 域 エ ラ ー が 発 生 し 、 NaN が 返 さ れ る 。

x が +0 (−0) で y が 0 で な い 場 合 、 +0 (−0) が 返 さ れ る 。

エ ラ ー

こ れ ら の 関 数 を 呼 び 出 し た 際 に エ ラ ー が 発 生 し た か の 判 定 方 法 に つ い て の 情 報 は math_error(7) を 参 照 の こ と 。 以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。 領 域 エ ラ ー

(domain error): x が 無 限 大 で あ る

errnoEDOM が 設 定 さ れ る (「 バ グ 」 の 節 も 参 照 )。 不 正 (invalid) 浮 動 小 数 点 例 外 (FE_INVALID) が 上 が る 。 領 域 エ ラ ー :

y が ゼ ロ

errnoEDOM が 設 定 さ れ る 。 不 正 (invalid) 浮 動 小 数 点 例 外 (FE_INVALID) が 上 が る 。

準 拠

C99, POSIX.1−2001. double 版 の 関 数 は SVr4, 4.3BSD, C89 に も 準 拠 し て い る 。

バ グ

バ ー ジ ョ ン 2.10 よ り 前 の glibc の 実 装 で は 、 無 限 大 で 領 域 エ ラ ー が 発 生 し た 際 に 、 errnoEDOM が 設 定 さ れ な か っ た 。

関 連 項 目

remainder(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。