关于printf的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 06:56:26
double d = 12.345;
下面哪个选项可以输出| 12.345|
A. System.out.printf("|%7d|\n",d);
B. System.out.printf("|%7f|\n",d);
C. System.out.printf("|%3.7d|\n",d);
D. System.out.printf("|%3.7f|\n",d);
E. System.out.printf("|%7.3d|\n",d);
F. System.out.printf("|%7.3f|\n",d);
要解释一下..

我主要不理解的是本来就只有三位小数,为什么还要用".3"来限制?

首先是如果不限制的话输出的则是|12.345000|
12.345连小数点共6位,所以要限制一共有7位,这样能在前面补充出一个空格
至于用.3么“%m.nf”是格式,"."是必须要,不然“%7f”是没有效果的~ 而用“%7.f”则就是没有小数位输出| 12.|
(C在vc++下是这样的,应该差不多,多试试就行了啊,自己试出来印象深刻些)

选F,7表示输出占7个字符,而12.345只占六个,所以他的前面有一个空格。
.3表示输出的数小数点后有三位,d、f就更容易选择了,d表示整数,f表示实数,E实际上是不合法的