Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
27
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

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

割り算

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入門

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
27
Help us understand the problem. What are the problem?