Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       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():
           _POSIX_C_SOURCE >= 200112L || _ISOC99_SOURCE
       rint():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
               || _XOPEN_SOURCE >= 500
               || /* Since glibc 2.19: */ _DEFAULT_SOURCE
               || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
       rintf(), rintl():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
               || /* Since glibc 2.19: */ _DEFAULT_SOURCE
               || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

説明

       The  nearbyint(),  nearbyintf(),  and  nearbyintl()   functions round their argument to an
       integer value  in  floating-point  format,  using  the  current  rounding  direction  (see
       fesetround(3))   and  without  raising  the  inexact exception.  When the current rounding
       direction is to nearest, these functions round  halfway  cases  to  the  even  integer  in
       accordance with IEEE-754.

       関数  rint(),  rintf(),  and  rintl()  も同じような動作をするが、 結果が引数と異なる場合に
       inexact 例外 (FE_INEXACT)  を出す (この例外は fetestexcept(3)  経由で確認可能)。

返り値

       これらの関数は丸めた整数値を返す。

       x が整数、+0、-0、NaN、無限のいずれかの場合、 x そのものが返される。

エラー

       エラーは発生しない。 POSIX.1-2001 にはオーバーフローでの範囲エラー (range error) の 記載が
       ある。「注意」の節を参照のこと。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌───────────────────────────┬───────────────┬─────────┐
       │インターフェース属性      │
       ├───────────────────────────┼───────────────┼─────────┤
       │nearbyint(), nearbyintf(), │ Thread safety │ MT-Safe │
       │nearbyintl(), rint(),      │               │         │
       │rintf(), rintl()           │               │         │
       └───────────────────────────┴───────────────┴─────────┘

準拠

       C99, POSIX.1-2001, POSIX.1-2008.

注意

       SUSv2  と  POSIX.1-2001  にはオーバーフローに関する記述があり、 オーバーフローの場合には、
       errnoERANGE  に設定するか、  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 プロジェクトのリリース 5.10 の一部である。プロジェクトの
       説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

                                            2017-09-15                                    RINT(3)