满意答案
骑驴客才尽
2014.11.11
采纳率:44% 等级:7
已帮助:311人
float为单精度,有效数字为6~7double为双精度,有效数字为15~16但他们在输出时,小数点后都有6位小数。例如3.123456
但是在格式化输出时例外。如:
main()
{
inta=15;
floatb=123.1234567;
doublec=12345678.1234567;
chard='p';
printf("a=%d,%5d,%o,%x
",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e
",b,b,b,b);
printf("c=%lf,%f,%8.4lf
",c,c,c);
printf("d=%c,%8c
",d,d);
printf("e=%11.2",c);
}
本例第七行中以四种格式输出整型变量a的值,其中“%5d”要求输出宽度为5,而a值为15只有两位故补三个空格。第八行中以四种格式输出实型量b的值。其中“%f”和“%lf”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。第九行输出双精度实数,“%8.4lf”由于指定精度为4位故截去了超过4位的部分。第十行输出字符量d,其中“%8c”指定输出宽度为8故在输出字符p之前补加7个空格,最后一行输出为12345678.12这时小数点占一位。
00分享举报