我想格式化一个包含浮点变量的字符串,其中包括固定数量的小数,我想用这种格式化语法来做到这一点:
amount = Math::PI
puts "Current amount: #{amount}"
我想获得Current amount: 3.14
.
我知道我可以做到
amount = Math::PI
puts "Current amount %.2f" % [amount]
但我问是否可以这样做#{}
。
我想格式化一个包含浮点变量的字符串,其中包括固定数量的小数,我想用这种格式化语法来做到这一点:
amount = Math::PI
puts "Current amount: #{amount}"
我想获得Current amount: 3.14
.
我知道我可以做到
amount = Math::PI
puts "Current amount %.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"
使用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)}"