2011-03-28 68 views
4

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

+4

两个甲基ods可以和漂浮物一起工作,或者漂浮物与整数混合在一起。你确定没有其他问题吗? – steenslag 2011-03-28 20:51:18

+1

也许你应该在看到这个问题的地方显示一些代码。 – 2011-03-28 22:52:54

回答

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] 
7

阵列当然可以进行排序:

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

也许你的阵列,它可以”在有nil t可以用任何东西排序。

+3

谢谢。我有一个NaN,因此为什么我得到了:在'sort'中:Float和Float的比较失败(ArgumentError) – reectrix 2011-03-30 12:59:52

4

也许你有这样的事情你的数组中,并没有注意到:

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

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

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

那个或或许与1.0/0至极收率无穷相同的错误(但这种误差是由红宝石检测)

+0

OP已经说过这种情况。 – 2012-01-13 19:09:02

+0

哦,,,没有得到... – juanm55 2012-01-16 13:35:35

+0

但也许一些更多关于这个问题的插图(建议我花了一段时间) – juanm55 2012-01-16 14:19:20