2013-04-23 6 views
1

나는이 경우에 에 대해서도이 작업을 수행 할 수 있습니까?이 경우 System.out.printf("The balance is %0.1f", acct.getBalance());, 내 경우에는 0이 될 때가 있습니다.이 경우에는 MissingFormatWidthException이됩니다. 0.0보다 큰 double에 완벽하게 작동합니다.printf의 자바 인쇄 이중 값 제로

+3

'getBalance() + 0.0'? – mcalex

답변

3
System.out.printf("The balance is %.1f",(double)acct.getBalance()); 

또는

System.out.printf("The balance is %1.1f",(double)acct.getBalance()); 

%0.1f 해석 2. 이상적으로 오류를 줄 수 있습니다.

+0

감사합니다. 완벽하게 작동했습니다. –

+0

원본 버전 오류가 발생하는 이유에 대한 설명? – Thilo

+0

내 대답을 편집했습니다. – NINCOMPOOP

1

이 시도 :

NumberFormat f = NumberFormat.getCurrencyInstance(); 
f.setMinimumFractionDigits(2); 
double d = 0.0; 
System.out.println(f.format(d)); 

출력 : 폭 정밀 적어도 0 부동 소수점과 같은 인쇄로

$0.00 
+0

이 방법도 효과적이지만, 여분의 객체를 만들지 않아도 printf를 사용하는 것이 더 좋습니다. –

1

이 시도 :

System.out.printf은 (acct.getBalance() = 0 acct.getBalance() "저울 %의 0.1F 인"!? 0.0);