所以,这是一个数组:
["2,0", "2,5", "3,2", "1,4", "1,8", "1,1", "2,7", "3,7", "0,8", "0,9",
"30,0", "0,5", "2,6", "3,0", "5,3", "9,0", "0,7", "12,8", "16,2", "19,2", "23,0",
"4,4", "6,4", "7,0", "7,7", "0,4", "1,2", "1,6", "11,1", "13,6", "16,9", "20,5",
"32,0", "5,4", "8,5", "0,36", "0,48", "0,55", "0,56", "0,66", "0,75", "0,76",
"0,95", "1,15", "1,65", "1,7", "2,1", "24,5", "3,5", "4,1", "4,8", "5,8", "2,2",
"46,0", "7,5", "0,6", "10,6", "11,4", "3,3", "3,8", "4,7", "40,6", "5,1", "5,5",
"5,9", "6,0", "6,7", "8,1", "9,2", "9,4"]
我需要将其升序排列,例如:
["0,36", "0.48", "0,5"..."1.7"..."40.6"]
我尝试使用.sort_by(&:to_i)
并得到:
["0,8", "0,9", "0,5", "0,7", "0,4", "0,36", "0,48", "0,55", "0,56", "0,66", "0,75",
"0,76", "0,95", "0,6", "1,4", "1,8", "1,1", "1,2", "1,6", "1,15", "1,65", "1,7",
"2,0", "2,5", "2,7", "2,6", "2,1", "2,2", "3,2", "3,7", "3,0", "3,5", "3,3", "3,8",
"4,4", "4,1", "4,8", "4,7", "5,3", "5,4", "5,8", "5,1", "5,5", "5,9", "6,4", "6,0",
"6,7", "7,0", "7,7", "7,5", "8,5", "8,1", "9,0", "9,2", "9,4", "10,6", "11,1",
"11,4", "12,8", "13,6", "16,2", "16,9", "19,2", "20,5", "23,0", "24,5", "30,0",
"32,0", "40,6", "46,0"]
看起来更好,但仍然随机出现一些数字。
答案 0 :(得分:7)
我假设您要按浮点值排序。为此,请先将逗号替换为句点并强制转换为float:
numbers.sort_by { |s| s.tr(',', '.').to_f }