我目前正在尝试将包含数字 82,000 的散列 counts["email"]
除以包含值 130 万的变量 total
。
当我运行 puts counts["email"]/total
时,我得到 0。
为什么我不能对这些进行除法?
最佳答案
您正在执行除法,尽管不是您预期的那样。在 Ruby 中有许多不同的整数除法:
# Integer division:
5 / 4 # => 1
# Floating point division:
5.fdiv(4) # => 1.25
# Rational division:
5.quo(4) # => Rational(5, 4)
您还可以将其中一个整数转换为 Float
或 Rational
:
5.to_f / 4 # => 1.25
5.to_r / 4 # => Rational(5, 4)
注意首先直接调用fdiv
是faster而不是调用 to_f
然后使用 /
运算符。它还清楚地表明您正在使用浮点除法。
关于ruby - 为什么我不能将一个 fixnum 除以另一个 fixnum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197567/