如何格式化字符串浮动在 Ruby 使用 # { variable } ?

我想格式化一个包含浮点变量的字符串,其中包含固定数量的小数,我想用这种格式化语法来做:

amount = Math::PI
puts "Current amount: #{amount}"

我想获得 Current amount: 3.14

我知道我可以做到

amount = Math::PI
puts "Current amount %.2f" % [amount]

但是我想知道是否可以用 #{}的方式来做。

60803 次浏览

使用 round:

"Current amount: #{amount.round(2)}"

你可以这样做,但我更喜欢 String#%版本:

 puts "Current amount: #{format("%.2f", amount)}"

正如@Bjoernsen 指出的那样,round是最直接的方法,它也适用于标准 Ruby (1.9) ,不仅适用于 Rails:

Http://www.ruby-doc.org/core-1.9.3/float.html#method-i-round

是的,有可能:

puts "Current amount: #{sprintf('%.2f', amount)}"

你可以使用 "#{'%.2f' % var}":

irb(main):048:0> num = 3.1415
=> 3.1415
irb(main):049:0> "Pi is: #{'%.2f' % num}"
=> "Pi is: 3.14"