Math.random() が 0 になった時に ceil でも floor でも 0 になるのではないですか?

共に結果は 0 になりますが、最終的な結果のとりうる数値の範囲が異なります。
2021年9月24日
ユーザー

ceil を使うことに関する質問を拝見しました。


Math.ceil(Math.random() * 6) → 0, 1, 2, 3, 4, 5, 6(非常に小さな確率ですが、Math.random() が 0 になったときに Math.ceil(0) は 0 となるため)
Math.ceil(Math.random() * 6) + 1 → 1, 2, 3, 4, 5, 6, 7
となってしまい、1 〜 6 の範囲ではなくなってしまいます。
したがって Math.floor() を使うようにしましょう。


ceil は小数点以下を切り上げと習いました。
ceil を使うと、Math.random() が 0 になった時に、Math.ceil(0) は 0 となる、とのことですが
floor でも Math.random() が 0 になった時には、
Math.floor(Math.random() * (max + 1 - min)) + min) において、0 を掛けているので、Math.floor(0) は 0 とならないんでしょうか?

floor の方がむしろ切り下げなので、切り上げの ceil で 0 になる意味が理解できていません。
ご教授よろしくお願い致します。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(7)