roundeven, roundevenf, roundevenl
From cppreference.com
| ヘッダー <math.h> で定義 |
||
| float roundevenf( float arg ); |
(1) | (C23以降) |
| double roundeven( double arg ); |
(2) | (C23以降) |
| long double roundevenl( long double arg ); |
(3) | (C23以降) |
| ヘッダー <tgmath.h> で定義 |
||
| #define roundeven( arg ) |
(4) | (C23以降) |
1-3) arg の最も近い整数値を、小数点以下がちょうど中間値(例:1.5、2.5)になる場合は最も近い偶数へ丸める(現在の丸めモードに関係なく)浮動小数点形式で計算します。
4) 型生成マクロ: arg が long double 型の場合、
roundevenl が呼び出されます。それ以外の場合、arg が整数型または double 型の場合、roundeven が呼び出されます。それ以外の場合、それぞれ roundevenf が呼び出されます。目次 |
[編集] パラメータ
| arg | - | floating-point value |
[編集] 戻り値
エラーが発生しなかった場合、arg の最も近い整数値を、小数点以下がちょうど中間値になる場合は最も近い偶数へ丸めた値を返します。
[編集] エラー処理
この関数は、math_errhandling で指定されたエラーの対象とはなりません。
実装が IEEE 浮動小数点演算 (IEC 60559) をサポートしている場合
- FE_INEXACT は決して発生しません。
- arg が ±∞ の場合、変更されずに返されます。
- arg が ±0 の場合、変更されずに返されます。
- arg が NaN の場合、NaN が返されます。
[編集] 例
このコードを実行
#include <math.h> #include <stdio.h> int main(void) { printf("roundeven(+2.4) = %+.1f\n", roundeven(2.4)); printf("roundeven(-2.4) = %+.1f\n", roundeven(-2.4)); printf("roundeven(+2.5) = %+.1f\n", roundeven(2.5)); printf("roundeven(-2.5) = %+.1f\n", roundeven(-2.5)); printf("roundeven(+2.6) = %+.1f\n", roundeven(2.6)); printf("roundeven(-2.6) = %+.1f\n", roundeven(-2.6)); printf("roundeven(+3.5) = %+.1f\n", roundeven(3.5)); printf("roundeven(-3.5) = %+.1f\n", roundeven(-3.5)); printf("roundeven(-0.0) = %+.1f\n", roundeven(-0.0)); printf("roundeven(-Inf) = %+f\n", roundeven(-INFINITY)); }
実行結果の例
roundeven(+2.4) = +2.0 roundeven(-2.4) = -2.0 roundeven(+2.5) = +2.0 roundeven(-2.5) = -2.0 roundeven(+2.6) = +3.0 roundeven(-2.6) = -3.0 roundeven(+3.5) = +4.0 roundeven(-3.5) = -4.0 roundeven(-0.0) = -0.0 roundeven(-Inf) = -inf
[編集] 参考文献
- C23標準 (ISO/IEC 9899:2024)
- 7.12.9.8 The roundeven functions (p: 265-266)
- 7.27 Type-generic math <tgmath.h> (p: 386-390)
- F.10.6.8 The roundeven functions (p: 532)
[編集] 関連項目
| (C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) |
現在の丸めモードを使用して整数に丸める 結果が異なる場合は例外を送出する (関数) |
| (C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) |
中間の場合はゼロから離れるように最も近い整数に丸める (関数) |