【JavaScript】Math.floor / Math.ceil / Math.round – 数値を丸める

JavaScriptで数値を丸める際には、Math.floor()Math.ceil()Math.round()という3つのメソッドを使用します。本記事では、それぞれの違いや使い方をまとめていきたいと思います。

Math.floor()とは?

Math.floor()は、引数の数値の最も近い小さい整数を返します。小数点以下を切り捨てるメソッドです。

JavaScript
console.log(Math.floor(4.7)); // 4
console.log(Math.floor(-4.7)); // -5

このメソッドは、負の値にも適用できます。

Math.ceil()とは?

Math.ceil()は、引数の数値以上の値で最小の整数を返します。小数点以下を切り上げるメソッドです。

JavaScript
console.log(Math.ceil(4.2)); // 5
console.log(Math.ceil(-4.2)); // -4

小数点以下の値に関係なく、常に大きい方向に切り上げられます。

Math.round()とは?

Math.round()は、四捨五入するメソッドです。

JavaScript
console.log(Math.round(4.4)); // 4
console.log(Math.round(4.5)); // 5
console.log(Math.round(-4.5)); // -4

Math.round()は、小数点以下が 0.5 以上の場合に切り上げ、それ未満の場合は切り捨てます。ただし、負の数の -0.5 は切り上げられて -4 になることに注意してください。

サンプルコード

ランダムな整数を取得する

Math.random()と組み合わせて、指定範囲内の整数を取得できます。

JavaScript
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(getRandomInt(1, 10)); // 例: 6

価格表示(小数点以下を切り捨て)

JavaScript
function formatPrice(price) {
  return Math.floor(price) + '円';
}

console.log(formatPrice(299.99)); // "299円"

ページネーション(切り上げ)

ページ数を計算する際にはMath.ceil()を使うと便利です。

JavaScript
function getTotalPages(items, itemsPerPage) {
  return Math.ceil(items / itemsPerPage);
}

console.log(getTotalPages(55, 10)); // 6

使用時の注意点

Math.round()の負の値の扱い

負の数値を四捨五入する際、-0.5-4に切り上げられます。通常の四捨五入の感覚とは異なるため注意が必要です。

さいごに

Math.floor()Math.ceil()Math.round()を適切に使い分けることで、正しく数値を処理できます。

  • Math.floor() : 小さい方向に切り捨て
  • Math.ceil() : 大きい方向に切り上げ
  • Math.round() : 四捨五入(負の数の扱いに注意)
  • 丸めた数値をUIに表示する際は、ユーザーの理解を助けるラベルを付ける