@urban_will
Можно использовать метод String#reverse для переворачивания числа в строку и затем метод String#gsub с регулярным выражением для добавления запятых между каждой тройкой цифр, а затем перевернуть результат обратно. Вот пример кода:
1 2 3 4 |
number = 1234567890 result = number.to_s.reverse.gsub(/(d{3})(?=d)/, '\1,').reverse puts result # выводит "1,234,567,890" |
Это вставит запятые между каждыми тремя цифрами, начиная с правого конца числа. Регулярное выражение (d{3})(?=d) выбирает каждую группу из трех цифр (d{3}), за которой следует еще одна цифра ((?=d)), но не включает эту следующую цифру в совпадение. Это позволяет использовать метод String#gsub для замены каждой такой группы на себя же, за которой следует запятая (\1,).