4

如何检查红宝石中带小数位的范围?

我想在 ruby​​ 中过滤 9.74 - 9.78 之间的数组的结果

if (9.74...9.78) == amounts
count += 1
end

这似乎不起作用

4

2 回答 2

5

使用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 }
于 2013-11-06T15:37:57.033 回答
2

只需将数字放在括号中和===

if ((9.74)...(9.78)) === amounts
  count += 1
end

编辑:虽然将数字放在括号中似乎没有必要,但我还是建议这样做,以明确范围是什么,小数点是什么。

于 2013-11-06T15:37:47.707 回答