簡體   English   中英

如何在Ruby中對浮點數組進行排序?

[英]How to sort an array of floats in Ruby?

只是想知道如何在Ruby中對浮點數組進行排序,因為“排序”和“排序!” 僅適用於整數數組。

浮動數組當然可以分類:

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

也許你的數組中有一個nil不能用任何東西排序。

你可以排序一個浮點數組沒有任何問題,如:

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]

也許你的數組中有這樣的東西,並沒有注意到:

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

0/0會給你一個NaN ,這是不可能與Float比較...在這種情況下你應該嘗試

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

那個或者1.0/0的相同錯誤會產生無窮大(但這個錯誤是由紅寶石檢測到的)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM