数値の「丸め方」をきちんと選ぶという発想
Math.round, Math.ceil, Math.floor は、数値を「整数」に丸めるための 3 種類のメソッドです。 どれも「小数をどう扱うか」を決めるための道具ですが、丸め方のルールがそれぞれ違うところが重要です。
天才プログラマー視点で言うと、「どの方向に丸めたいか」を意識して選べるようになることが、数値処理の基礎体力になります。
Math.round — 一般的な四捨五入
Math.round(x) は、もっともよく知られている「四捨五入」です。
console.log(Math.round(3.2)); // 3
console.log(Math.round(3.5)); // 4
console.log(Math.round(3.8)); // 4
JavaScript小数点以下が 0.5 未満なら切り捨て、0.5 以上なら切り上げます。 「一番近い整数に丸める」と覚えていただくと分かりやすいです。
マイナスの場合も同じルールで動きます。
console.log(Math.round(-3.2)); // -3
console.log(Math.round(-3.5)); // -3
console.log(Math.round(-3.8)); // -4
JavaScriptここでのポイントは、「0 からの距離が近い方の整数に寄せる」というイメージです。
Math.ceil — 常に「上」に切り上げる
Math.ceil(x) は、小数点以下が少しでもあれば「次の大きい整数」に切り上げるメソッドです。
console.log(Math.ceil(3.1)); // 4
console.log(Math.ceil(3.9)); // 4
console.log(Math.ceil(3.0)); // 3
JavaScript「天井(ceiling)」に向かって丸める、とイメージすると覚えやすいです。
マイナスの場合は少し感覚がズレますが、ルールは「より大きい整数」です。
console.log(Math.ceil(-3.1)); // -3
console.log(Math.ceil(-3.9)); // -3
JavaScript-3.1 や -3.9 より「大きい」整数は -3 なので、そちらに寄ります。 「値を絶対に小さくしない方向に丸めたい」ときに使うと考えていただくとよいです。
Math.floor — 常に「下」に切り捨てる
Math.floor(x) は、小数点以下を必ず切り捨てて「それ以下の最大の整数」にするメソッドです。
console.log(Math.floor(3.1)); // 3
console.log(Math.floor(3.9)); // 3
console.log(Math.floor(3.0)); // 3
JavaScript「床(floor)」に向かって丸める、と覚えていただくとイメージしやすいです。
マイナスの場合は、「より小さい整数」に寄ります。
console.log(Math.floor(-3.1)); // -4
console.log(Math.floor(-3.9)); // -4
JavaScript-3.1 や -3.9 より「小さい」整数は -4 なので、そちらに寄ります。 「値を絶対に大きくしない方向に丸めたい」ときに使うと考えると分かりやすいです。
例題:ページ数や人数の計算で丸め方を選ぶ
例えば、「アイテム 10 個を 3 個ずつのページに分ける」とします。
const items = 10;
const perPage = 3;
const pagesRound = Math.round(items / perPage); // 3
const pagesCeil = Math.ceil(items / perPage); // 4
const pagesFloor = Math.floor(items / perPage); // 3
console.log(pagesRound, pagesCeil, pagesFloor);
JavaScript実際には「足りない分も含めてページを用意したい」ので、 必要なページ数は Math.ceil(items / perPage) を使うのが正解になります。
このように、 「足りない分も確保したいなら ceil」 「超えない範囲で抑えたいなら floor」 「単純に近い整数にしたいなら round」 という使い分けが重要です。
例題:料金計算での丸め方の違い
料金計算では、丸め方の違いがそのまま金額の違いになります。
const price = 123.456;
console.log(Math.round(price)); // 123
console.log(Math.ceil(price)); // 124
console.log(Math.floor(price)); // 123
JavaScript「1 円未満を切り捨てる」なら Math.floor。 「1 円未満を切り上げる」なら Math.ceil。 「四捨五入したい」なら Math.round。
どの丸め方が仕様として正しいかを、先に決めてからメソッドを選ぶことが大切です。
まとめ:丸め方を意識して Math.round / ceil / floor を選ぶ
Math.round, Math.ceil, Math.floor は、
round:一番近い整数に四捨五入するceil:常に上方向(より大きい整数)に丸めるfloor:常に下方向(より小さい整数)に丸める
という、はっきりした役割の違いがあります。
「この場面では、値をどちら側に寄せるのが正しいか」を意識して、 3 つのうちどれを使うか選べるようになることが、数値処理の基本になります。

