我有 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/