Конкатенация строки с числом в ruby
Я полностью начинаю в ruby, поэтому его очень новичок вопрос.
Я пытаюсь объединить строку с плавающим значением, как следует, а затем распечатать его.
puts " Total Revenue of East Cost: " + total_revenue_of_east_cost
total_revenue_of_east_cost-это переменная с плавающим значением, как я могу заставить ее печатать?
5 ответов:
Это не совсем объединение, но он будет делать работу, которую вы хотите сделать:
puts " Total Revenue of East Cost: #{total_revenue_of_east_cost}"
технически, это интерполяция. Разница заключается в том, что конкатенация добавляет в конец строки, где по мере интерполяции вычисляет бит кода и вставляет его в строку. В данном случае вставки в строку.
Ruby будет оценивать что-либо между фигурными скобками в строке, где открывающая скобка предшествует octothorpe.
ответ Стивена Дойла, используя метод, известный как" строковая интерполяция", является правильным и, вероятно, самым простым решением, однако есть и другой способ. Вызывая метод objects to_s, этот объект можно преобразовать в строку для печати. Таким образом, следующее также будет работать.
puts " Total Revenue of East Cost: " + total_revenue_of_east_cost.to_s
для вашего примера вам может понадобиться что-то более конкретное, чем метод to_s. В конце концов, to_s на поплавке часто будет включать в себя более или менее точность, чем вы хотите отобразить.
в этом случае
puts " Total Revenue of East Coast: #{sprintf('%.02f', total_revenue_of_east_coast)}"
может быть лучше. #{} может обрабатывать любой бит кода ruby, поэтому вы можете использовать sprintf или любой другой метод форматирования.