Как отсортировать массив с плавающей точкой в ​​Ruby? - PullRequest
4 голосов
/ 29 марта 2011

Просто интересно, как отсортировать массив с плавающей точкой в ​​Ruby, так как "sort" и "sort!"работают только для целочисленных массивов.

Ответы [ 3 ]

7 голосов
/ 29 марта 2011

Массивы с плавающей точкой, безусловно, могут быть отсортированы:

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

Возможно, у вас есть nil в вашем массиве, который не может быть отсортирован ни с чем.

4 голосов
/ 13 января 2012

возможно, у вас есть что-то подобное в вашем массиве, и вы не заметили:

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

0/0 даст вам NaN, что невозможно сравнить с Float ... вв этом случае вы должны попытаться

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

, или, возможно, та же самая ошибка с 1.0/0, которая дает бесконечность (но эта ошибка обнаружена ruby)

4 голосов
/ 29 марта 2011

Вы можете сортировать массив с плавающей точкой без проблем, например:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...