Подтвердить что ты не робот

Java: двойной вопрос форматирования для printf

%s - строка в printf, а% d - десятичная точка, о которой я думал... но при вводе

writer.printf("%d dollars is the balance of %s\r\n", bal, nm);

.. исключение говорит мне, что %d!= lang.double. Идеи?

4b9b3361

Ответ 1

%d для целых чисел использует %f вместо этого, он работает для типов float и double:

double d = 1.2;
float f = 1.2f;
System.out.printf("%f %f",d,f); // prints 1.200000 1.200000

Ответ 2

Да, %d означает десятичную, но это означает система с десятичным числом, а не десятичная точка.

Кроме того, в качестве дополнения к предыдущему сообщению вы также можете контролировать количество десятичных точек для отображения. Попробуйте это,

System.out.printf("%.2f %.1f",d,f); // prints 1.20 1.2

Подробнее см. API-документы.