ceil, floor メソッドの覚え方
へりくつですが、(間違った考え方をしてしまって)こう思って頭が痛くなったっていう報告です。
目次
- 目次
- プラスの少数なら分かりやすいのだが、マイナスになるとどういうこと・・・
- ceil メソッドは「大きい整数に丸める」んですよ
- 切り捨ての floor メソッドはどうなのよ?
- floor メソッドは「小さい整数に丸める」んですよ
プラスの少数なら分かりやすいのだが、マイナスになるとどういうこと・・・
小数点切り上げの ceil メソッドと小数点切り捨ての floor メソッドについてです。例えば ceil メソッドの場合ですけど、プラスの小数点の場合は分かりやすいのです。
puts 1.1.ceil puts 1.9.ceil
2 2
小数点を繰り上げて 2 になるんですよね。繰り上げる=+1する。ですよね。でも、これがマイナスになると、
puts -1.1.ceil puts -1.9.ceil
-1 -1
になります。マイナスならマイナスらしく、マイナスの方向に繰り上げる=-1足す。つまり、-1.1
なら-1+(-1) で-2
ちゃうんかい?ってとらえてしまったのです。
ceil メソッドは「大きい整数に丸める」んですよ
ということを学びました(後から)。二次方程式の x 軸的に考えてみると以下ですよね。
(y軸: 大) | (小)------------------------------------------> (x軸: 大) -4 -3 -2 -1 0 1 2 3 4 | (小)
だから、-1.1
の場合、-2
と -1
の間にいて、 -1
の方が大きい数なんですね。だから答えが-1
に変換されるわけです。なるほどー!
切り捨ての floor メソッドはどうなのよ?
puts 1.1.floor puts 1.9.floor
1 1
小数点を切り捨てるから 1 になるんですよね。でも、これがマイナスになると、
puts -1.1.floor puts -1.9.floor
-2 -2
になります。小数点を切り捨てるのなら -1
ちゃうんかい、と思ってしまいました。
floor メソッドは「小さい整数に丸める」んですよ
もう一度、二次方程式の x 軸的に考えてみます。
(y軸: 大) | (小)------------------------------------------> (x軸: 大) -4 -3 -2 -1 0 1 2 3 4 | (小)
とあって、-1.1
の場合、-2
と -1
の間にいて、 -2
の方が小さい数なんですね。だから答えが-2
に変換されるわけです。なるほどー!