Ruby

[ruby] 割り算で小数点以下も必要な場合

More than 3 years have passed since last update.


割り算


float.rb

255/12


こんな計算をすると、小数点がどっか行っちゃう。


float.rb

[1] pry(main)> 255/12

=> 21

これは別にどっか行っちゃう訳ではなく、整数/整数=整数を返す仕様らしい。

勝手にfloatにはならない。


一覧表

除算の対象
除算する数値
/
div
quo

整数
整数
整数
整数
浮動

整数
浮動小数点数
浮動小数点数
整数
浮動小数点数

浮動小数点数
整数
浮動小数点数
整数
浮動小数点数

浮動小数点数
浮動小数点数
浮動小数点数
整数
浮動小数点数


float.rb

[2] pry(main)> 255/12.to_f

=> 21.25
[3] pry(main)> 255.quo(12)
=> (85/4)
[4] pry(main)> 255.quo(12).to_f
=> 21.25
[5] pry(main)> 255.to_f/12.to_f
=> 21.25

floatを明示すれば無問題


参考

除算による商と剰余を取得する - 数値(Numeric)クラス - Ruby入門