你正在进行分裂,虽然不是你期望的分裂.在Ruby中有许多不同的方法来划分整数:
# Integer division:
5 / 4 # => 1
# Floating point division:
5.fdiv(4) # => 1.25
# Rational division:
5.quo(4) # => Rational(5, 4)
Run Code Online (Sandbox Code Playgroud)
您还可以将一个整数转换为a Float
或a Rational
:
5.to_f / 4 # => 1.25
5.to_r / 4 # => Rational(5, 4)
Run Code Online (Sandbox Code Playgroud)
请注意,首先fdiv
直接调用比调用然后使用运算符更快.它还清楚地表明您正在使用浮点除法.to_f
/
因为这就是Ruby的工作方式:当你将整数除以整数时,你得到一个整数.在这种情况下,它将为0,因为它是结果的整数部分.
要获得浮点结果,只需告诉Ruby您确实需要浮点数!有很多方法可以做到这一点,我想最简单的只是将其中一个操作数转换为Float ...
puts counts["email"]/total.to_f
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1787 次 |
最近记录: |