Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. Math.floor() / ceil() / round() / trunc()

Math.floor() / ceil() / round() / trunc()

数値の小数部分を処理して整数にするためのメソッドです。切り捨て・切り上げ・四捨五入・小数部分の除去の4種類があります。

構文
// 小数点以下を切り捨てます。
var num = Math.floor(数値);

// 小数点以下を切り上げます。
var num = Math.ceil(数値);

// 小数点以下を四捨五入します。
var num = Math.round(数値);

// 小数部分を単純に除去します。
var num = Math.trunc(数値);
メソッド一覧
メソッド概要
Math.floor(数値)数値以下の最大の整数を返します。正の数では小数を切り捨て、負の数ではより小さい整数になります。
Math.ceil(数値)数値以上の最小の整数を返します。正の数では小数を切り上げ、負の数ではより大きい整数になります。
Math.round(数値)小数点以下を四捨五入した整数を返します。小数部分がちょうど『0.5』の場合は切り上げられます。
Math.trunc(数値)小数部分をそのまま除去して整数部分だけを返します。正の数では切り捨て、負の数では切り上げと同じ結果になります。
サンプルコード
// 正の数での比較
console.log(Math.floor(3.7)); // 『3』と出力されます。切り捨てです。
console.log(Math.ceil(3.2)); // 『4』と出力されます。切り上げです。
console.log(Math.round(3.5)); // 『4』と出力されます。四捨五入です。
console.log(Math.trunc(3.7)); // 『3』と出力されます。小数部分の除去です。

// 負の数では動作が異なります。
console.log(Math.floor(-3.2)); // 『-4』と出力されます。より小さい整数になります。
console.log(Math.ceil(-3.7)); // 『-3』と出力されます。より大きい整数になります。
console.log(Math.round(-3.5)); // 『-3』と出力されます。
console.log(Math.trunc(-3.7)); // 『-3』と出力されます。小数部分だけを除去します。

// 0〜9のランダムな整数を生成する実用例
var random = Math.floor(Math.random() * 10);
console.log(random); // 0〜9のいずれかの整数が出力されます。

// ページ数の計算に使う実用例
var totalItems = 23;
var itemsPerPage = 10;
var totalPages = Math.ceil(totalItems / itemsPerPage);
console.log(totalPages); // 『3』と出力されます。23件を10件ずつ表示するには3ページ必要です。
実行結果
3    // Math.floor(3.7)
4    // Math.ceil(3.2)
4    // Math.round(3.5)
3    // Math.trunc(3.7)
-4   // Math.floor(-3.2)
-3   // Math.ceil(-3.7)
-3   // Math.round(-3.5)
-3   // Math.trunc(-3.7)
3    // Math.ceil(23 / 10) — ページ数の計算
概要

これら4つのメソッドはいずれも数値を整数に変換しますが、丸め方が異なります。最もよく使われるのは『Math.floor()』で、特に『Math.random()』と組み合わせてランダムな整数を生成するパターンは定番です。

正の数だけを扱う場合は『Math.floor()』と『Math.trunc()』の結果は同じですが、負の数を扱う場合は結果が異なります。『Math.floor(-3.2)』は『-4』になるのに対し、『Math.trunc(-3.2)』は『-3』になります。単純に小数部分を取り除きたい場合は『Math.trunc()』が直感的です。

『Math.ceil()』はページネーションの計算でよく使われます。全23件のデータを1ページ10件で表示する場合、『Math.ceil(23 / 10)』で必要なページ数『3』を求めることができます。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。