名前空間
変種
操作

std::ceil

提供: cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
一般的な数学関数
関数
基本的な演算
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指数関数
(C++11)
(C++11)
(C++11)
(C++11)
冪関数
(C++11)
(C++11)
三角関数と双曲線関数
(C++11)
(C++11)
(C++11)
誤差関数とガンマ関数
(C++11)
(C++11)
(C++11)
(C++11)
最も近い整数
ceil
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮動小数点操作関数
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類および比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
マクロ定数
(C++11)(C++11)(C++11)(C++11)(C++11)
 
ヘッダ <cmath> で定義
float       ceil( float arg );
(1)
double      ceil( double arg );
(2)
long double ceil( long double arg );
(3)
double      ceil( Integral arg );
(4) (C++11およびそれ以降)
1-3) arg より小さくない最も小さな整数値を計算します。
4) 任意の整数型の引数を受け取るオーバーロード集合または関数テンプレート。 2) と同等です (引数は double にキャストされます)。

目次

[編集] 引数

arg - 浮動小数点値

[編集] 戻り値

エラーが発生しなければ、 arg より小さくない最も小さな整数値、すなわち ⌈arg⌉ が返されます。

戻り値
math-ceil.svg
引数

[編集] エラー処理

math_errhandling に規定されている通りにエラーが報告されます。

処理系が IEEE 浮動小数点算術 (IEC 60559) をサポートしている場合、

  • 現在の丸めモードは効果を持ちません。
  • arg が ±∞ であれば、それが変更されずに返されます。
  • arg が ±0 であれば、それが変更されずに返されます。
  • arg が NaN であれば、 NaN が返されます。

[編集] ノート

非整数の有限な値を丸めるとき、 FE_INEXACT が発生するかもしれません (が要求されているわけではありません)。

すべての標準の浮動小数点フォーマットにおいて、最も大きな表現可能な浮動小数点値は正確な整数であるため、この関数それ自体はオーバーフローすることはありません。 しかし任意の整数型 (std::intmax_t も含みます) は、整数変数に格納するとき、結果がオーバーフローするかもしれません。

(double 引数に対する) この関数は、以下のコードで実装されているかのように (ただし FE_INEXACT を発生させない自由を除いて) 動作します。

#include <cmath>
#include <cfenv>
#pragma STDC FENV_ACCESS ON
double ceil(double x)
{
    double result;
    int save_round = std::fegetround();
    std::fesetround(FE_UPWARD);
    result = std::rint(x); // or std::nearbyint 
    std::fesetround(save_round);
    return result;
}

[編集]

#include <cmath>
#include <iostream>
int main()
{
    std::cout << std::fixed
              << "ceil(+2.4) = " << std::ceil(+2.4) << '\n'
              << "ceil(-2.4) = " << std::ceil(-2.4) << '\n'
              << "ceil(-0.0) = " << std::ceil(-0.0) << '\n'
              << "ceil(-Inf) = " << std::ceil(-INFINITY) << '\n';
}

出力:

ceil(+2.4) = 3.000000
ceil(-2.4) = -2.000000
ceil(-0.0) = -0.000000
ceil(-Inf) = -INF

[編集] 関連項目

指定された値より大きくない最も近い整数を返します
(関数) [edit]
(C++11)
指定された値より絶対値が大きくない最も近い整数を返します
(関数) [edit]
(C++11)(C++11)(C++11)
最も近い整数を返します。 ちょうど中間の場合はゼロから離れる方向に丸めます
(関数) [edit]
(C++11)
現在の丸めモードを使用して最も近い整数に丸めます
(関数) [edit]
(C++11)(C++11)(C++11)
現在の丸めモードを使用して最も近い整数に丸めますが、結果が異なる場合は例外を発生します
(関数) [edit]