こんにちは!kossyです!
さて、今回はRubyで五捨五超入する方法について、備忘録としてブログに残してみたいと思います。
環境
Ruby 2.6.9
Rubyで五捨五超入をやってみる
ロジックとしては、「小数点以下が0.5を超えていれば切り上げ」なので、
def rounding_up_five # レシーバの数字からレシーバをint型にして引き算 decimal = self - to_i # 小数点以下の数値が0.5よりも大きいかどうか if decimal > 0.5 to_i + 1 else to_i end end
のようになると思います。
早速実行してみましょう。説明のためにFloatクラスを拡張する形でメソッドを定義します。
$ irb $ class Float def rounding_up_five # レシーバの数字からレシーバをint型にして引き算 decimal = self - to_i # 小数点以下の数値が0.5よりも大きいかどうか if decimal > 0.5 to_i + 1 else to_i end end end $ 1.49.rounding_up_five => 1 $ 1.50.rounding_up_five => 1 $ 1.51.rounding_up_five => 2
小数点以下が0.5よりも大きい場合に、一の位に1を足した数値が返ることが確認できました。
勉強になりました。