2013-04-23 2 views
1

У меня в моей функции следующее заявление System.out.printf("The balance is %0.1f", acct.getBalance());, иногда баланс будет 0, если это так, я получаю MissingFormatWidthException, как я могу сделать эту работу даже для 0.0? Он отлично работает для удвоений, превышающих 0,0.Java печать двойного значения ноль в 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 интерпретируют как печать, как с плавающей точкой, по крайней мере 0 в ширину и точностью 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.00 
+0

Это тоже работает, но я предпочитаю делать это с помощью printf без необходимости создавать дополнительные объекты. –

1

Попробуйте это:

System.out.printf ("Баланс% 0.1f", acct.getBalance() = 0 acct.getBalance (!):? 0,0);

Смежные вопросы