我有一个十进制数字字符串的数组,我需要得到数组的总和。我尝试迭代数组并将每个数字更改为浮点数,但是每次都只返回一个整数,而我需要总和是一个小数。应该将字符串更改为什么数据类型,以及获取数组总和的最佳方法将会很有帮助。
我有一个十进制数字字符串的数组,我需要得到数组的总和。我尝试迭代数组并将每个数字更改为浮点数,但是每次都只返回一个整数,而我需要总和是一个小数。应该将字符串更改为什么数据类型,以及获取数组总和的最佳方法将会很有帮助。
memo
的初始值,则集合的第一个元素将用作memo
的初始值。因此,您无需指定初始值0.0
。 - mu is too short[].map(&:to_f).reduce(:+) #=> nil
пјЊиЂЊ[].map(&:to_f).reduce(0.0, :+) => 0.0
гЂ‚ - Cary Swovelandstr='1,2,3,4'.split(',').map(&:to_i).inject(0,:+) #1+2+3+4=10
num=[1,2,3,4].inject(0,:+)#=>10
p str
p num
a = ["12.4", "48.2"]
a.inject(0) {|s,e| s.to_f + e.to_f } #=> 60.6
inject
可以让你在累加过程中积累一个值。有关#inject
的文档。
我认为你可以使用以下任意一种语句:
array.map(&:to_f).reduce(:+)
array.sum(&:to_f)
.sum
在 active_support
中被定义,所以它是 rails
的一部分。如果你只想使用 Ruby,那么使用第一个语句。 - mmsilviu