Java 中 printf 的双百分比格式问题

2022-09-01 11:08:00

%s是中的字符串,而 %d 是我认为的小数点...然而,当放入时printf

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

..抛出一个异常告诉我!= lang.double。想法?%d


答案 1

%d是用于整数而不是,它适用于两者和类型:%ffloatdouble

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 文档