C++のceil関数とfloor関数の使い方をわかりやすく解説
ceil関数とは
ceil関数は、引数に渡した値以上となる整数のうち、最も小さい値(切り上げた値)を返す関数です。C++では「cmath」ヘッダーファイル内で宣言されており、引数には天井値を求めたい単一の値を指定します。なお、引数のデータ型はdouble型・float型・long double型のいずれかである必要があります。
C++におけるceil関数の構文は以下のとおりです。
double ceil(double x); float ceil(float x);
それでは、ceil関数を使用した具体的なサンプルコードを見ていきましょう。
サンプルコード
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float var = 1234.25;
float res;
res = ceil(var);
cout << "Ceil value of " << var << " = " << res << endl;
return 0;
}
実行結果
Ceil value of 1234.25 = 1235
この例では、1234.25というfloat型の値に対してceil関数を適用しています。実行結果は1235となり、小数点以下が切り上げられていることがわかります。
floor関数とは
floor関数は、引数に渡した値以下となる整数のうち、最も大きい値(切り下げた値)を返す関数です。ceil関数と同様に「cmath」ヘッダーファイル内で宣言されており、引数には床値を求めたい単一の値を指定します。引数のデータ型はdouble型・float型・long double型のいずれかである必要があります。
C++におけるfloor関数の構文は以下のとおりです。
double floor(double x); float floor(float x);
次に、floor関数を使用したサンプルコードを確認してみましょう。
サンプルコード
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float var = 211.876;
float res;
res = floor(var);
cout << "Floor value of " << var << " = " << res << endl;
return 0;
}
実行結果
Floor value of 211.876 = 211
この例では、211.876というfloat型の値に対してfloor関数を適用しています。実行結果は211となり、小数点以下が切り捨てられていることがわかります。
まとめ
ceil関数とfloor関数は、どちらも「cmath」ヘッダーに含まれる数学関数であり、ceil関数は値を切り上げ、floor関数は値を切り下げます。負の値の場合も挙動は同じで、例えばceil(-2.5)は-2、floor(-2.5)は-3を返します。ページ送りの件数計算やグリッド配置など、小数点以下の端数処理が必要な場面で活用できる便利な関数なので、ぜひ使いこなせるようにしておきましょう。
-
ハッシュ関数とハッシュテーブルの基本を徹底解説!代表的な3つの手法とは
ハッシュ化(ハッシング)とは、ハッシュ関数と呼ばれる数学的な関数を用いて、テキストや数値のリストから値を生成する処理のことです。数値キーや英数字キーを扱うハッシュ関数は数多く存在し、それぞれ計算方法や特性が異なります。本記事では、代表的なハッシュ関数である「除算法」「乗算法」「中央二乗法」の仕組みと計算例を解説し、あわせてそれらを活用するデータ構造「ハッシュテーブル」についても詳しく紹介します。 ハッシュ関数とは ハッシュ関数は、任意のキー(データ)を受け取り、固定範囲内の数値(ハッシュ値)へ変換する関数です。以下に、代表的なハッシュ関数を3つ紹介します。 1. 除算法(デビジョン法) 除
-
C++で二分探索木(BST)からCeiling(天井)とFloor(床)を求める方法
本記事では、二分探索木(BST)からCeiling(天井)値とFloor(床)値を求める方法について解説します。まず用語を整理しておきましょう。あるキーに対する「Ceiling」とは、そのキー以上の値の中で最小の要素を指し、「Floor」とはそのキー以下の値の中で最大の要素を指します。応用例:メモリ管理システム例えば、メモリ管理システムを構築することを考えてみます。空きメモリブロック(フリーノード)がBST上に配置されており、入力された要求サイズに対して最適なフィット(ベストフィット)を見つけたい場面です。このとき、ツリーを降下しながら「キー値より大きい最小のデータ」を追跡していくことになりま