2017-10-09 6 views
0

小数点以下2桁の数値を書式化したいと思います。なぜ私のコードがエラーを受け取っているのかわかりません。AndroidフォーマットXMLを使用した10進数

これは私のコードです。

のstrings.xml

<resources> 
    <string name="progress">%1$d/%2$d (%3.2f%%)</string> 
</resources> 

MainActivity.java:

int progressCount; 
int totalCount = 3000; 
double percentage; 

for (int x = 0; x < totalCount; x++) { 
    progressCount = x; 
    percentage = ((((double) progressCount)/((double) totalCount)) * 100); 
    Log.i("MainActivity", "Percentage: " + String.format(getString(R.string.progress), progressCount, totalCount, percentage)); 
} 

エラーの出会い:によって引き起こさ

:java.util.IllegalFormatConve rsionException:%fはjava.lang.Integerの引数をフォーマットできません

このような出力が必要です。 1/100代わりに(%の3.2fの(0.01%)

+1

を交換%% )をリソース文字列に追加します。 https://stackoverflow.com/a/32755921/1803222を参照してください。 –

+0

うわーありがとう。なぜ** $ **の記号なしで動かないのですか? – Jerrol

+0

私が理解する限り、%3 $ partは、システムが3番目に渡されたパラメータがそこで使用されることを識別するのに役立ちます。 –

答えて

2

私はそれが(%3 $ .2f %%)でなければならないと思います

<string name="progress">%1$d/%2$d (%3.2f%%)</string> 

<string name="progress">%1$d/%2$d (%3$.2f)</string> 
関連する問題