VIDEO LESSON
JavaScriptのMath.floor()の使い方:引数・戻り値・実例と注意点の解説動画
再生時間 8:21動画を別のタブで開く ↗
動画の字幕・文字起こしを読む
再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。
- 0:00こんにちは。
- 0:01今回はマスのフロアを紹介します。
- 0:03これは、数値を負の無限大方向へ丸める、つまり切り捨てる静的メソッドです。
- 0:10床という意味の名前の通り、小数部分が少しでもあれば、ひとつ下の整数まで引き下げます。
- 0:17この動画では、書き方と引数、記事の基本例であるグループ数の計算、正の数と負の数の動き、
- 0:25時間やポイントへの実例、自動変換の注意、そして浮動小数点の誤差まで、実行結果と一緒に学びます。
- 0:33切り上げのシーリング、四捨五入のラウンドとセットで覚えると、丸めの使い分けがはっきりします。
- 0:41余りを除いて、確実に使える分だけを数えたい場面で、特に頼りになるメソッドです。
- 0:48数直線で左隣の整数を探す、というイメージを持つと、正の数でも負の数でも迷わずに済みます。
- 0:55まず動作環境を確認します。
- 0:57フロアはマスオブジェクトに最初から備わる、歴史のとても長い機能です。
- 1:02クロームとファイアーフォックスでは一以降、サファリでは一以降、エッジでは十二以降で使えます。
- 1:09アンドロイド版クロームでは十八以降、アイオーエス版サファリでは一以降です。
- 1:15ノード・ジェイエスではゼロ・十・ゼロという古い版から対応しています。
- 1:20記事の互換性情報はエムディーエヌのデータに基づく目安です。
- 1:24現在使われている環境であれば、ほぼどこでもそのまま使えるでしょう。
- 1:29追加の読み込みは不要で、関数として備わっていることを実機でも確認済みです。
- 1:35書き方を確認します。
- 1:36マスのあとにドットを書き、フロアとカッコを続けます。
- 1:40引数は丸めたい数値が一つだけです。
- 1:43戻り値は、その引数以下の最大の整数です。
- 1:46スライドの例では、四・九が四に切り捨てられ、すでに整数の四はそのまま四で返ることを実機で確認しました。
- 1:53ポイントは、小数部分の大きさは関係ないことです。
- 1:57ゼロ・一でもゼロ・九でも、少しでも小数部分があれば下の整数になります。
- 2:02変数を渡しても、割り算のような計算式を渡しても、その結果である数値が切り捨ての対象になります。
- 2:09まずはこの基本の形を覚えてください。
- 2:12記事の基本例を見ます。
- 2:14十七割る五の結果をフロアで切り捨てる、とても短いコードです。
- 2:19実行結果は三で、ノードの実機結果とも一致しています。
- 2:24十七割る五は三・四ですが、十七個を五個ずつ分けると、完全なグループは三つで、
- 2:29余りの二個は一グループにはなりません。
- 2:34そのためグループ数は三になるわけです。
- 2:37記事でもこの、完全なグループ数の場面が想定されています。
- 2:42まずはこの例をブラウザーのコンソールかノードで実行し、個数を十五に変えると割り切れて三になることも確かめてみてください。
- 2:53予測してから実行する流れが、理解を深める近道です。
- 2:57正の数の動きを詳しく見ます。
- 3:00四・一も四・九も、結果はどちらも四になります。
- 3:04ゼロ・五はゼロに、十二・一も十二・九も十二になることを実機で確認しました。
- 3:10ラウンドが近い方の整数を選ぶのに対して、フロアは常に小さい方の整数を選びます。
- 3:16小数部分がどれほど大きくても切り捨てるため、完成した分や使える分だけを数えるときに過大な数が出ません。
- 3:25逆に、必要量を計算するときに切り捨てると不足することがあるため、どちらの方向へ丸めるべきかは、
- 3:30業務のルールに合わせて選ぶ必要があります。
- 3:36方向を決めるメソッドだ、と覚えておきましょう。
- 3:40例えば材料が二十三・九個分あっても、完成品として数えられるのは二十三個、
- 3:44というのが切り捨ての発想です。
- 3:48負の数の切り捨てを確認します。
- 3:51記事の境界例であるマイナス一・二の結果は、マイナス一ではなくマイナス二で、
- 3:55実機とも一致しました。
- 4:00マイナス四・七はマイナス五になります。
- 4:03負の無限大方向とは、数直線で左方向、つまりゼロから遠ざかる方向のことです。
- 4:10そのため負の数では、見た目には切り上げに近く見えます。
- 4:15マイナスゼロ・五の結果もマイナス一になることを実機で確認しました。
- 4:20小数部分を単純に取り除くトランクではマイナス一・二がマイナス一になるため、
- 4:25負の数では結果が食い違います。
- 4:30負の温度や差分を扱うときは、絶対値で考える癖を外し、数直線の左方向へ進むイメージで結果を予測してください。
- 4:39ここが最も間違えやすいポイントです。
- 4:43グループ数の計算を、個数を変えて確かめます。
- 4:46ゼロ個ならゼログループ、十五個なら割り切れて三グループ、十七個でも余りを除いて三グループになることを実機で確認しました。
- 4:54割り算の結果がちょうど整数のときは切り捨てても値は変わらず、余りがあるときだけ端数が落ちます。
- 5:01記事が対比する通り、余りを含めて必要な数を出すならシーリングが適します。
- 5:06例えば余った二個も入れる箱が必要なら切り上げ、完成した組だけを数えるなら切り捨て、
- 5:10という使い分けです。
- 5:14一覧のページ数とは逆の代表例なので、総個数を一グループの個数で割って切り捨てる、
- 5:18という型として覚えておきましょう。
- 5:22もう二つ、実務に近い実例を見ます。
- 5:25一つ目は時間です。
- 5:26百二十五秒を六十秒単位で数えると二・ゼロ八となり、完全に経過した分だけを数える場面では、
- 5:31二分として扱う計算になります。
- 5:36二つ目はポイントです。
- 5:38千二百五十を百で割って切り捨てると十二になり、百円ごとに一点というルールで、
- 5:43端数を除いたポイント数が求まることを実機で確認しました。
- 5:49在庫や完成品のように、達していない分を数に入れると困るものを数えるときは、
- 5:54この切り捨ての考え方がそのまま使えます。
- 5:58確実に言える分だけを数える、という目的が共通しています。
- 6:03単位を変えたくなった場合でも、割り算の数字を変えるだけで対応できる、汎用性の高い書き方です。
- 6:11引数が数値以外の場合の動きも知っておきましょう。
- 6:15数値の形をした文字列は、自動で数値に変換されて切り捨てられます。
- 6:20スライドの例では、文字列の四・九が四になることを実機で確認しました。
- 6:25ヌルはゼロとして扱われ、結果はゼロです。
- 6:29一方、数値にできない文字列を渡すと結果はナンという特別な値になり、引数を省略した場合もナンになります。
- 6:37無限大を渡した場合は、そのまま無限大が返ります。
- 6:41自動変換に頼ると意図しない結果を招くことがあるため、実務では渡す前に自分で数値へ変換し、
- 6:45検証しておく方が安全です。
- 6:50注意点を二つ挙げます。
- 6:52一つ目は浮動小数点の誤差です。
- 6:54計算の結果が本来はちょうど三のはずでも、内部では二・九九九とわずかに小さい値になることがあります。
- 7:02その値を切り捨てると二になってしまい、スライドの例でもその動きを実機で確認しました。
- 7:09境界ぎりぎりの計算ほど、誤差の影響を受けやすくなります。
- 7:13二つ目は丸める時点です。
- 7:15途中の計算のたびに切り捨てると、結果が必要以上に小さくなります。
- 7:20計算は小数のまま進め、最後に一度だけ切り捨てるのが基本です。
- 7:25金額や在庫のように数が重要な場面では、この二点を先に確認してください。
- 7:31まとめです。
- 7:32フロアは、数値を負の無限大方向へ丸め、引数以下の最大の整数を返すメソッドです。
- 7:38判断のポイントは三つです。
- 7:40まず、小数部分が少しでもあればひとつ下の整数になるため、グループ数やポイントのように確実な分だけを数える計算に向くこと。
- 7:48次に、負の数ではゼロから遠い方向へ進み、マイナス一・二がマイナス二になること。
- 7:54そして、浮動小数点の誤差が境界に影響するため、丸めるのは最後に一度だけにすることです。
- 8:00切り上げたいときはシーリング、近い方へ丸めたいときはラウンドと使い分けてください。
- 8:06まずは記事の基本例をコンソールで実行し、個数を変えて結果を予測してみてください。
- 8:12お疲れさまでした。
- 8:14迷ったときは、余りを数に入れるべきかどうかを基準に、切り捨てかどうかを判断してみてください。
この動画で学べること
Math.floor()で数値を負の無限大方向へ丸める方法を解説。引数と戻り値、実行結果付きのコード、間違えやすい点、ブラウザー・Node.js対応を確認できます。
解説記事・サンプルコードを読む:JavaScriptのMath.floor()の使い方:引数・戻り値・実例と注意点 →