2017-10-09 6 views
0

자릿수를 2 자리 숫자로 지정하고 싶습니다. 왜 내 코드에 오류가 발생하는지 알 수 없습니다.Android 형식 XML을 사용하는 십진수

이것은 내 코드입니다.

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 $ 부분은 시스템에서 세 번째로 전달 된 매개 변수가 사용됨을 확인하는 데 도움이됩니다. –

답변

2

나는 그것이 (% 3 $ .2f %%)해야합니다 생각

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

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