如何检查红宝石中带小数位的范围?
我想在 ruby 中过滤 9.74 - 9.78 之间的数组的结果
if (9.74...9.78) == amounts
count += 1
end
这似乎不起作用
使用Range#cover
:
if (9.74...9.78).cover? amounts
count += 1
end
例子 :
p (9.74...9.78).cover? 9.75 # => true
p (9.74...9.78).cover? 9.79 # => false
按照@m_x 的建议更新
# will give you the element in the range
array.select{ |item| (9.74..9.78).cover? item }
# will give you the element count in the array belongs to the range
array.count{ |item| (9.74..9.78).cover? item }
只需将数字放在括号中和===
:
if ((9.74)...(9.78)) === amounts
count += 1
end
编辑:虽然将数字放在括号中似乎没有必要,但我还是建议这样做,以明确范围是什么,小数点是什么。