2014-03-30 64 views
1

我可以使用"%.5f" % var_name来格式化浮点数var_name,其中5表示固定的小数位数。我如何动态更改此号码?我试过"%.%f" % var_name, 5"#{var_name}.#{5}f",但他们没有工作。动态格式化

+0

你是混乱' “#{}”'和'字符串#%'。前者是字符串文字语法的一部分。后者是一个适用于已经创建的字符串的操作。你不能混用它们;他们适用于不同的时间。 – sawa

+0

@Uri建议的名称是[“字符串插值”](https://rubymonk.com/learning/books/1-ruby-primer/chapters/5-strings/lessons/31-string-basics)。请注意,如果字符串是用单引号定义的(例如'num = 4;“%。#{num} f”%0.001#=>“0.0010”';'%。#{num} f '%0.001#=> ArgumentError:标记后精度')。这是使用单引号和双引号的主要区别。 –

+0

@sawa我不关注。 “在不同的时间适用”是什么意思? – Arc676

回答

6

你应该尝试:

"%.#{5}f" % var_name 

与变量:

var_name = 0.00001 
num = 5 

"%.#{num}f" % var_name 
# => "0.00001" 

num = 6 
"%.#{num}f" % var_name 
# => "0.000010"