Объединяющая строка с номером в рубине - PullRequest
65 голосов
/ 21 декабря 2009

Я абсолютный новичок в рубине, так что это очень начинающий вопрос.

Я пытаюсь объединить строку со значением с плавающей запятой, как показано ниже, и затем распечатать ее.

puts " Total Revenue of East Cost: " + total_revenue_of_east_cost 

total_revenue_of_east_cost - это переменная, содержащая значение с плавающей точкой, как я могу заставить ее печатать?

Ответы [ 5 ]

96 голосов
/ 21 декабря 2009

Это не совсем конкатенация, но она сделает ту работу, которую вы хотите сделать:

puts " Total Revenue of East Cost: #{total_revenue_of_east_cost}"

Технически, это интерполяция. Разница заключается в том, что конкатенация добавляет к концу строки, где в качестве интерполяции оценивает бит кода и вставляет его в строку. В этом случае вставка идет в конце вашей строки.

Ruby будет вычислять что-либо между фигурными скобками в строке, где открывающей фигурной скобке предшествует октоторп.

52 голосов
/ 21 декабря 2009

Ответ Стивена Дойла, использующий технику, известную как «Строковая интерполяция», является правильным и, вероятно, самым простым решением, однако есть и другой способ. Вызывая метод to_s объектов, этот объект можно преобразовать в строку для печати. Таким образом, следующее также будет работать.

puts " Total Revenue of East Cost: " + total_revenue_of_east_cost.to_s
7 голосов
/ 21 декабря 2009

Для вашего примера вам может потребоваться что-то более конкретное, чем метод to_s. В конце концов, to_s в float часто будет иметь более или менее точную точность, чем вы хотите отобразить.

В этом случае

puts " Total Revenue of East Coast: #{sprintf('%.02f', total_revenue_of_east_coast)}"

может быть лучше. # {} может обрабатывать любой бит кода ruby, поэтому вы можете использовать sprintf или любой другой метод форматирования, который вам нужен.

5 голосов
/ 22 декабря 2009

Мне нравится (подробности см. В Class String%):

puts " Total Revenue of East Coast: " + "%.2f" % total_revenue_of_east_coast
0 голосов
/ 19 августа 2014

Пример Bucle

(1..100).each do |i| puts "indice #{i} " end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...