【Ruby】割り算するときは小数に注意
3を2で割ってみる。 普通だったら1.5となるはずだが、、、
p 3 / 2 # => 1
1.5にならない!
なぜ1になっているのか?
Rubyは、整数同士で割り算をした場合、計算結果は小数点以下が省かれて整数となる仕様となっている。
では、小数を含めた結果が欲しいときは、どうするか?
計算の中のいずれかの数値に小数を含める。
p 3.0 / 2 # => 1.5
または
p 3 / 2.0 # => 1.5
じゃあ、変数を使って計算するときは?
to_fメソッドを使う!
to_f メソッドはオブジェクトをFloatクラスのオブジェクト(浮動小数点数)に変換するメソッド。
num1 = 3 num2 = 2 value = num1.to_f / num2 p value # => 1.5
数字に対しても同様に使える!
p 3 / 2.to_f # => 1.5
まとめ
割り算をする時に、小数点を含めた計算結果を得るには、to_fメソッドを使うか数値に小数点以下を記載して計算をする!
参考
https://docs.ruby-lang.org/ja/latest/method/String/i/to_f.html https://26gram.com/ruby-numeric