ruby-on-rails - 获取 float 的总和?

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

我有 0.0 24.0 0.0 12.0 0.0 0.0 0.0 0.0 0.0 我如何获得这些值的总和? .sum 等不适用于 float

编辑:

我在做

<% @data.each do |data| %>
    <%= data[ :values ]%>
<%end%>

打印 data[:values] 的地方 [5.0, 0.0, 0.0, 0.0, 0.0] [4.0, 0.0, 0.0, 0.0, 0.0] [1.0, 0.0, 0.0, 0.0, 0.0] 我只想获取每个数组的第一个值并将它们加在一起得到 10.0

@数据打印

[{:name=>"BMW", :values=>[0.0, 0.0, 0.0, 0.0, 0.0]}, {:name=>"Asda", :values=>[32.0, 12.0, 0.0, 0.0, 0.0]}]

最佳答案

假设它们在一个数组中,这是可行的:

irb(main):001:0> [0.0, 1.0, 3.0].inject(:+)
=> 4.0

编辑:从您编辑的问题来看,您似乎想要:

@data.reduce(0) { |sum, x| sum += x[:values][0] }

它获取每个 :values 的第一个(第 0 个)元素,并将它们加在一起:

irb(main):003:0> @data
=> [{:values=>[0.0, 0.0, 0.0, 0.0, 0.0], :name=>"BMW"}, {:values=>[32.0, 12.0, 0.0, 0.0, 0.0], :name=>"Asda"}]
irb(main):004:0> @data.reduce(0) { |sum, x| sum += x[:values][0] }
=> 32.0

关于ruby-on-rails - 获取 float 的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903935/

相关文章:

ruby - 发现 Ruby 语法错误 : NameError: undefined local variable or method ` '

ruby-on-rails - 在初始化时配置 Redis 连接

ruby-on-rails - "save(false)"是做什么的?

ruby-on-rails - 如何使用 STI 建立 ActiveRecord 关联

ruby-on-rails - 禁用 guest 结帐 spree

ruby-on-rails - 在 session 中临时存储回形针对象

ruby-on-rails - ruby 矿4.5 : How to drop into a context-aware Rails Console during debugging?

ruby-on-rails - Rails 路由 : override the action name in a resource/member block

ruby-on-rails - 等效于哈希的 .try() 以避免 "undefined method"错误?

ruby - 在描述之外使用 RSpec 的 "expect"等...它会阻止