【发布时间】:2009-12-21 13:29:36
【问题描述】:
我是 ruby 的初学者,所以这是一个非常新手的问题。
我正在尝试连接一个带有浮点值的字符串,如下所示,然后打印它。
puts " Total Revenue of East Cost: " + total_revenue_of_east_cost
total_revenue_of_east_cost 是一个持有浮点值的变量,我怎样才能让它打印出来?
【问题讨论】:
标签: ruby
我是 ruby 的初学者,所以这是一个非常新手的问题。
我正在尝试连接一个带有浮点值的字符串,如下所示,然后打印它。
puts " Total Revenue of East Cost: " + total_revenue_of_east_cost
total_revenue_of_east_cost 是一个持有浮点值的变量,我怎样才能让它打印出来?
【问题讨论】:
标签: ruby
这并不完全是串联,但它会做你想做的工作:
puts " Total Revenue of East Cost: #{total_revenue_of_east_cost}"
从技术上讲,这是插值。不同之处在于连接添加到字符串的末尾,其中插值计算一些代码并将其插入到字符串中。在这种情况下,插入位于字符串的末尾。
Ruby 将评估字符串中大括号之间的任何内容,其中左大括号前面是一个八字形。
【讨论】:
Stephen Doyle 的回答是,使用一种称为“字符串插值”的技术是正确的,并且可能是最简单的解决方案,但是还有另一种方法。通过调用 objects 的 to_s 方法,可以将 object 转换为 string 以进行打印。所以下面的也行。
puts " Total Revenue of East Cost: " + total_revenue_of_east_cost.to_s
【讨论】:
String,字符串插值会自动调用to_s。
对于您的示例,您可能需要比 to_s 方法更具体的东西。毕竟,浮点数上的 to_s 通常会包含比您希望显示的更多或更少的精度。
在这种情况下,
puts " Total Revenue of East Coast: #{sprintf('%.02f', total_revenue_of_east_coast)}"
可能会更好。 #{} 可以处理任何 ruby 代码,因此您可以使用 sprintf 或任何其他您喜欢的格式化方法。
【讨论】:
我喜欢(详见 Class String %):
puts " Total Revenue of East Coast: " + "%.2f" % total_revenue_of_east_coast
【讨论】:
示例扣子
(1..100).each do |i| puts "indice #{i} " end
【讨论】: