Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中对浮点数组进行排序?_Ruby - Fatal编程技术网

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

如何在Ruby中对浮点数组进行排序?,ruby,Ruby,只是想知道如何在Ruby中对浮点数组进行排序,因为“sort”和“sort!”只适用于整数数组 您可以对浮点数组进行排序,而不会出现任何问题,如: 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] 浮点数数组当然可以排序: >> [6.2, 5.8, 1.1, 4.9, 13.4].

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

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

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]

浮点数数组当然可以排序:

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

也许你的数组中有一个
nil
,它不能与任何东西排序。

也许你的数组中有类似的东西,但你没有注意到:

[1.0 , 3.0, 0/0, ...]
0/0
将为您提供一个
NaN
,这是无法与浮点进行比较的。。。在这种情况下,你应该试着

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

1.0/0
产生无穷大的错误(但这个错误是由ruby检测到的)

这两种方法都适用于浮点数,或者浮点数与整数混合。您确定没有其他问题吗?也许您应该在看到此问题的地方显示一些代码。谢谢。我有一个NaN,因此我得到了:in‘sort’:Float与Float的比较失败(ArgumentError),但可能建议对这个主题进行更多说明(我花了一段时间才意识到),很高兴你发布了这个答案。这正是我遇到的问题,其他答案并不能很好地说明发生了什么。