我想格式化一个包含浮点变量的字符串,其中包括带有固定小数点的浮点变量,并且我想使用这种格式语法来做到这一点:
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]
但我问是否有可能这样做#{}
。
Answers:
用途round
:
"Current amount: #{amount.round(2)}"
amount.round(2).to_s.chomp('.0')
,这很丑陋,但我认为它对我有用。
5.684999905497534e-06
。在a.round(5)
将产生1.0e-05
,而'%.5f' % a
产量"0.00001"
您可以执行此操作,但我更喜欢以下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)}"