ruby-on-rails - 在 Ruby on Rails 3 中使用小数

标签 ruby-on-rails ruby ruby-on-rails-3

我正在尝试计算产品的平均净价。在我的产品模型中,我有:total_sold 和:total_net_revenue。在该方法中进行直接除法似乎总是得到 0。我使用 BigDecimal 因为我认为这是问题所在......但是在我对下面代码的最新迭代中,当答案出现时我仍然得到零小数点。

def avg_price
  BigDecimal(total_sold.to_s) / (BigDecimal(total_net_revenue.to_s) / 100)
end  

净收入以美分为单位,这就是我除以 100 的原因。有人可以指出我做错了什么或应该做什么吗?

最佳答案

total_net_revenue / total_sold

total_net_revenue / total_sold / 100.0

total_net_revenue.to_f / total_sold / 100

如果您需要,这三种方法可以提高精度。请记住,“平均价格”是“平均价格/销售额”。这是每件商品的价格,因此您需要按特定顺序进行除法。

关于ruby-on-rails - 在 Ruby on Rails 3 中使用小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730830/

相关文章:

ruby-on-rails - Rails 中 1 个模型的 2 个用户定义类

ruby-on-rails - 更新方法 "No route matches [POST]"

ruby-on-rails - 将日期时间与今天的日期进行比较

ruby-on-rails - 如何在 Ruby 中定义私有(private)方法?

ruby - 数组 ruby 中对的频率

ruby-on-rails-3 - 如何指定要从私有(private) github 存储库中提取的 gem?

ruby-on-rails - 使用 Active Storage 对图像进行排序

javascript - 如何在 Rails 应用程序中导入 javascript?

sql - 如何使用 `OR` 子句控制 ActiveRecord 查询中的括号位置

ruby-on-rails - 如何在 ActiveScaffold Rails 3 中实现搜索