%s
はprintf
の文字列で、%dは10進数です...
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
は10進数を意味しますが、小数点ではなく10進数システムを意味します。
さらに、前の投稿を補完するものとして、表示する小数点の数を制御することもできます。これを試して、
System.out.printf("%.2f %.1f",d,f); // prints 1.20 1.2
詳細については、 APIドキュメント を参照してください。
はい、%dは10進数(整数)用で、doubleは%fを想定しています。しかし、単に%fを使用すると、デフォルトで最大精度6になります。倍精度のすべての精度桁数を出力するには、文字列で次のように渡します。
System.out.printf("%s \r\n",String.valueOf(d));
または
System.out.printf("%s \r\n",Double.toString(d));
これはデフォルトでprintlnが行うことです:
System.out.println(d)
(そして、行を終了します)