回答:
整数除算を行っています。以下をFloat
追加することで、数値aの1つを作成できます.0
。
9.0 / 5 #=> 1.8
9 / 5.0 #=> 1.8
.to_f
あなたが例えば、整数を含む2つの変数を分割している場合答えは良いですa.to_f / b
。2つのハードコードされた整数(おそらく奇妙です)を文字通りに除算している場合は、使用して9.0 / 5
も問題ありません。
整数除算を行っています。を使用to_f
して、強制的に浮動小数点モードにすることができます。
9.to_f / 5 #=> 1.8
9 / 5.to_f #=> 1.8
これは、値がリテラルではなく変数の場合にも機能します。1つの値を浮動小数点数に変換するだけで、式全体を浮動小数点演算に変換できます。
Numeric#fdiv
代わりに使用できるメソッドもあります:
9.fdiv(5) #=> 1.8
Fixnum#to_rはここでは触れられていませんが、ruby 1.9から導入されました。Fixnumを有理形式に変換します。以下はその使用例です。これはまた、使用されるすべての数値がFixnumである限り、正確な除算を与えることができます。
a = 1.to_r #=> (1/1)
a = 10.to_r #=> (10/1)
a = a / 3 #=> (10/3)
a = a * 3 #=> (10/1)
a.to_f #=> 10.0
有理数を操作するフロートが結果をフロートに変換する例。
a = 5.to_r #=> (5/1)
a = a * 5.0 #=> 25.0
def method; a - b/8; end
メソッド呼び出しの最後の式が戻り値なので、単純にメソッドから計算の結果を返します。