【Ruby】割り算するときは小数に注意

3を2で割ってみる。 普通だったら1.5となるはずだが、、、

p 3 / 2     # => 1

f:id:haru89:20200405022623j:plain:w200

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