2014-03-30 99 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"