我想格式化一个包含浮点变量的字符串,其中包括带有固定小数点的浮点变量,并且我想使用这种格式语法来做到这一点:
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)}"