如何在Ruby中对浮点数组进行排序?

时间:2011-03-28 20:47:38

标签: ruby

只是想知道如何在Ruby中对浮点数组进行排序,因为“排序”和“排序!”仅适用于整数数组。

3 个答案:

答案 0 :(得分:7)

浮动阵列当然可以分类:

>> [6.2, 5.8, 1.1, 4.9, 13.4].sort
 => [1.1, 4.9, 5.8, 6.2, 13.4] 

也许你的数组中有一个nil无法对任何内容进行排序。

答案 1 :(得分:4)

您可以对float数组进行排序而不会出现任何问题:

irb(main):005:0> b = [2.0, 3.0, 1.0, 4.0]
=> [2.0, 3.0, 1.0, 4.0]
irb(main):006:0> b.sort
=> [1.0, 2.0, 3.0, 4.0]

答案 2 :(得分:4)

也许你的数组中有这样的东西并且没有注意到:

[1.0 , 3.0, 0/0, ...]

0/0会给你一个NaN,这是不可能与Float比较...在这种情况下你应该尝试

[2.3,nil,1].compact.sort
# => [1,2.3]

1.0/0相同的错误产生无穷大(但红宝石检测到此错误)