Ruby on rails 对数组中的非整数排序
这是一个数组:Ruby on rails 对数组中的非整数排序,ruby-on-rails,ruby,Ruby On Rails,Ruby,这是一个数组: ["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
["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\u by(&:to\u 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"]
看起来更好,但仍然有一些数字随机出现。我假设您希望按浮点值排序。要执行此操作,请首先将逗号替换为句点并强制转换为浮点:
numbers.sort_by{| s | s.tr('','.')。to_f}
这些数字到底是多少?为什么它们用逗号分隔?第二个数组中怎么会有“0.48”?