用ruby中的数字连接字符串

时间:2009-12-21 13:29:36

标签: ruby

我是红宝石的初学者,所以这是一个非常新手的问题。

我正在尝试将一个字符串与一个浮点值连接起来,然后打印它。

puts " Total Revenue of East Cost: " + total_revenue_of_east_cost 

total_revenue_of_east_cost是一个保持浮动值的变量,我怎么能让它打印出来?

5 个答案:

答案 0 :(得分:96)

这不是完全连接,但它可以完成你想要做的工作:

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

从技术上讲,这是插值。不同之处在于,连接会添加到字符串的末尾,其中插值会计算一些代码并将其插入到字符串中。在这种情况下,插入位于字符串的末尾。

Ruby会评估字符串中大括号之间的任何内容,其中开头括号前面有一个octothorpe。

答案 1 :(得分:51)

使用称为“字符串插值”的技术,Stephen Doyle的答案是正确的,可能是最简单的解决方案,但还有另一种方法。通过调用对象to_s方法,该对象可以转换为字符串进行打印。所以以下内容也适用。

puts " Total Revenue of East Cost: " + total_revenue_of_east_cost.to_s

答案 2 :(得分:7)

对于您的示例,您可能需要比to_s方法更具体的内容。毕竟,浮点数上的to_s通常会包含比您希望显示的精度更高或更低的精度。

在那种情况下,

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

可能会更好。 #{}可以处理任何ruby代码,因此您可以使用sprintf或任何其他您想要的格式化方法。

答案 3 :(得分:5)

我喜欢(详见Class String%):

puts " Total Revenue of East Coast: " + "%.2f" % total_revenue_of_east_coast

答案 4 :(得分:0)

示例bucle

(1..100).each do |i| puts "indice #{i} " end