1

私は自分の関数に次のステートメントを持っていますSystem.out.printf("The balance is %0.1f", acct.getBalance());。時には残高が 0 になることがありMissingFormatWidthExceptionます0.0。0.0 より大きい double に対して完全に機能します。

4

3 に答える 3

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

また

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

%0.1fprint は、少なくとも幅が 0 で精度が 2 の浮動小数点として解釈されます。理想的には、エラーが発生するはずです。

于 2013-04-23T12:33:19.967 に答える
1

これを試して :

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

出力:

 $0.00
于 2013-04-23T12:31:33.643 に答える
1

これを試して:

System.out.printf("残高は %0.1f", acct.getBalance() !=0 ? acct.getBalance() : 0.0);

于 2013-04-23T12:35:12.583 に答える