名前空間
変種
操作

roundeven, roundevenf, roundevenl

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小演算
(C99)
(C99)
指数関数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
べき乗関数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角関数と双曲線関数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最も近い整数浮動小数点数
(C99)(C99)(C99)
roundeven
(C23)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮動小数点操作
(C99)(C99)
(C99)(C23)
(C99)
縮小演算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子および量子指数
Decimal再エンコーディング関数
総順序およびペイロード関数
分類
(C99)
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <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) 型生成マクロ: arglong 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)
中間の場合はゼロから離れるように最も近い整数に丸める
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)