只是想知道如何在Ruby中对浮点数组进行排序,因为“排序”和“排序!”仅适用于整数数组。
答案 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
相同的错误产生无穷大(但红宝石检测到此错误)