Ответ 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
%s
- строка в printf
, а% d - десятичная точка, о которой я думал... но при вводе
writer.printf("%d dollars is the balance of %s\r\n", bal, nm);
.. исключение говорит мне, что %d
!= lang.double. Идеи?
%d
для целых чисел использует %f
вместо этого, он работает для типов float
и double
:
double d = 1.2;
float f = 1.2f;
System.out.printf("%f %f",d,f); // prints 1.200000 1.200000
Да, %d
означает десятичную, но это означает система с десятичным числом, а не десятичная точка.
Кроме того, в качестве дополнения к предыдущему сообщению вы также можете контролировать количество десятичных точек для отображения. Попробуйте это,
System.out.printf("%.2f %.1f",d,f); // prints 1.20 1.2
Подробнее см. API-документы.