カテゴリ: JavaScript 更新日: 2025/12/02

JavaScriptのMath.floor(), Math.ceil(), Math.round()の違いを比較解説!初心者でもわかる数値の丸め方

JavaScriptのMath.floor(), Math.ceil(), Math.round()の違いを比較解説
JavaScriptのMath.floor(), Math.ceil(), Math.round()の違いを比較解説

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで小数点の数字を丸めたいときって、どうすればいいですか?」

先生

「いい質問ですね。JavaScriptには、数値を丸めるための便利な関数がいくつかあります。たとえば、Math.floor()Math.ceil()Math.round()などです。」

生徒

「それぞれどう違うんですか?全部“丸める”ってことは同じじゃないんですか?」

先生

「似ているようで、それぞれの動きはちょっと違います。順番に詳しく見ていきましょう!」

1. Math.floor()とは?小数点以下を切り捨てる関数

1. Math.floor()とは?小数点以下を切り捨てる関数
1. Math.floor()とは?小数点以下を切り捨てる関数

Math.floor()は、「小数点以下を切り捨てる」関数です。つまり、少数部分をすべて取り除いて、整数部分だけを残します。

たとえば、3.9Math.floor()に渡すと、結果は3になります。小数点以下がどんなに大きくても、常に下の整数になります。


console.log(Math.floor(3.9));  // 3
console.log(Math.floor(7.1));  // 7
console.log(Math.floor(-2.3)); // -3(マイナスの場合は注意!)

マイナスの数値では、「より小さい方向」に切り捨てられます。たとえば、-2.3-3になります。ここが初心者の方がよく混乱するポイントです。


    -2.3 → -3 に切り捨て

2. Math.ceil()とは?小数点以下を切り上げる関数

2. Math.ceil()とは?小数点以下を切り上げる関数
2. Math.ceil()とは?小数点以下を切り上げる関数

Math.ceil()は、「小数点以下を切り上げる」関数です。つまり、少数部分が少しでもあれば、整数部分を1つ大きくします。


console.log(Math.ceil(3.1));  // 4
console.log(Math.ceil(7.9));  // 8
console.log(Math.ceil(-2.3)); // -2(マイナスでは大きい方向になる)

マイナスのときは、注意が必要です。-2.3は「上方向(大きいほう)」に丸められるので、-2になります。


    -2.3 → -2 に切り上げ

つまり、Math.ceil()は常に「天井(ceil)」の方向、つまり上に向かって丸める関数です。

3. Math.round()とは?四捨五入する関数

3. Math.round()とは?四捨五入する関数
3. Math.round()とは?四捨五入する関数

Math.round()は「四捨五入」する関数です。これは、私たちが日常で使う“普通の丸め方”ですね。

小数点以下が0.5未満なら切り捨て、0.5以上なら切り上げます。


console.log(Math.round(3.1));  // 3
console.log(Math.round(3.5));  // 4
console.log(Math.round(7.9));  // 8
console.log(Math.round(-2.5)); // -2(0.5は切り上げ方向)

    3.4 → 3 に四捨五入
    3.5 → 4 に四捨五入

この関数は日常的な「四捨五入」と同じ考え方で動くので、最も直感的に理解しやすい丸め方です。

4. 3つの関数の違いを表で比較しよう

4. 3つの関数の違いを表で比較しよう
4. 3つの関数の違いを表で比較しよう

ここまでの内容を整理すると、Math.floor()Math.ceil()Math.round()の違いは次のようになります。


<table class="table table-bordered text-center">
    <thead class="table-light">
        <tr>
            <th>関数名</th>
            <th>意味</th>
            <th>3.7の結果</th>
            <th>-2.7の結果</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><code>Math.floor()</code></td>
            <td>小数点以下を切り捨て</td>
            <td>3</td>
            <td>-3</td>
        </tr>
        <tr>
            <td><code>Math.ceil()</code></td>
            <td>小数点以下を切り上げ</td>
            <td>4</td>
            <td>-2</td>
        </tr>
        <tr>
            <td><code>Math.round()</code></td>
            <td>四捨五入</td>
            <td>4</td>
            <td>-3</td>
        </tr>
    </tbody>
</table>

5. 小数点以下を指定して丸めたいときの応用

5. 小数点以下を指定して丸めたいときの応用
5. 小数点以下を指定して丸めたいときの応用

上記の関数は「整数」に丸めるときに便利ですが、「小数第2位まで」など、桁を指定して丸めたい場合もあります。

その場合は、次のように10のべき乗を使って調整します。


let num = 3.14159;
let rounded = Math.round(num * 100) / 100; // 小数第2位まで四捨五入
console.log(rounded); // 3.14

    出力結果: 3.14

このように、10倍してから丸めて10で割り戻すと、指定した桁数で丸めることができます。小数第3位なら1000を使えばOKです。

6. 実践例:お会計の金額を整数に丸める

6. 実践例:お会計の金額を整数に丸める
6. 実践例:お会計の金額を整数に丸める

たとえば、買い物アプリで「税込み金額を整数にしたい」ときには、このように使えます。


let price = 1980;
let tax = price * 0.1;  // 消費税10%
let total = price + tax;

console.log("税込金額:", Math.round(total)); // 四捨五入で整数に

    税込金額: 2178

このように、Math.round()を使えば、「小数点のないきれいな金額」にできます。実際のアプリやWebサイトでもよく使われる方法です。

7. どの関数を使えばいいの?選び方のポイント

7. どの関数を使えばいいの?選び方のポイント
7. どの関数を使えばいいの?選び方のポイント
  • 少数を「切り捨てたい」→ Math.floor()
  • 少数を「切り上げたい」→ Math.ceil()
  • 「普通の四捨五入」をしたい → Math.round()

使い分けのコツを覚えておけば、数値を扱うときにとても便利です。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう
No.8
Java&Spring記事人気No8
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】