ruby - 为什么我不能将一个 fixnum 除以另一个 fixnum?

标签 ruby math division fixnum

我目前正在尝试将包含数字 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)

您还可以将其中一个整数转换为 FloatRational:

5.to_f / 4 # => 1.25
5.to_r / 4 # => Rational(5, 4)

注意首先直接调用fdivfaster而不是调用 to_f 然后使用 / 运算符。它还清楚地表明您正在使用浮点除法。

关于ruby - 为什么我不能将一个 fixnum 除以另一个 fixnum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197567/

相关文章:

ruby - 超薄模板,自定义 DOCTYPE

Javascript sin函数问题

c - 我的无符号短指针返回意外结果。为什么?

javascript - 如何为多个 div 表单创建上一个和下一个按钮?

ruby-on-rails - 如何将 ruby​​ 散列数组转换为单个散列?

ruby - Sinatra 和 environment.rb

Ruby 动态数组 : undefined local variable or method `s' for main:Object (NameError)

arrays - 通过重复删除第一个和中间、第一个和最后一个或中间和最后一个元素来清空数组的最小成本

haskell - Haskell 中的除法,还是没明白

algorithm - 如何找到除以给定数字的只有 0 和 1 的最小数字?