printf函数的用法
%f 缺省为小数点后6位
printf("%f\n", 1234.000001); //output 1234.000001
%.9f 小数点后9位,不够的9位后面用0补充
printf("%.9f\n", 1234.00000001); //output 1234.000000010
%.2f 小数点后2位,多余的会被删除,进位采用四舍五入的方式
printf("%.2f\n", 2.22555); //normal output 2.23
%4f 最少输出4位,但是由于缺省小数点后面就是6位,所以这样的设置没有意义
printf("%4f\n", 2.2); //normal output 2.200000
%10f 最少输出10位,小数点后面自动会补充到6为,如果还是不够10为,则在数字的右侧增加空格,并且小数点是占一位的。
printf("%10f\n", 2.2); //normal output -2.200000
%-10f 最少输出10位,小数点后面自动会补充到6为,如果还是不够10为,则在数字的左侧增加空格,并且小数点是占一位的。
printf("%-10f\n", 2.2); //normal output 2.200000--
%10.3f 最少输出10位,小数点后面最多3位,首先将小数处理成3位,并进行四舍五入。由于位数不够10位,在左侧用空格补充。
printf("%10.3f\n", 2.2555); //normal output -----2.256
%-10.3f 最少输出10位,小数点后面最多3位,首先将小数处理成3位,并进行四舍五入。由于位数不够10位,在右侧用空格补充。
printf("%-10.3f\n", 2.2555); //normal output 2.256-----
%f 四舍五入的规则是按小数点输出位数之后的一个数进行四舍五入的,不是从整个数字的最后一位进行四舍五入的。
printf("%.3f\n", 2.44448); //normal output 2.444 因为小数点后面3个4之后还是4,所以8对其结果没有影响,不会从8开始进位的变成2.4445之后再进位成2.445的
printf("%.3f\n", 2.44458); //normal output 2.445 正常从小数点第四位开始进位
%d 输出十进制数字
% 当一个int型的数据包含小数位时,其值会自动转换成int型,也就是说会把小数为舍弃掉,并且没有四舍五入的规则。
int i=2.9;
printf("%d\n", i);
%o 输出八进制数字
printf("%o\n", 20); //output:24
%o代表八进制输出,输出格式是数字,前面不带”0”,只有在程序中才会在前面加”0”说明是一个八进制数字。
%x 输出十六进制数字
printf("%o\n", 20); //output:14
%x代表八进制输出,输出格式是数字,前面不带”0x”,只有在程序中才会在前面加”0x”说明是一个十六进制数字。
%s 正常输出字符串
printf("%s\n", "abcd"); //normal output abcd
%8s 最少输出8位长度的字符串,不够在字符串左侧用空格补充
printf("%8s\n", "abcd"); //normal output ----abcd
%8s 最少输出8位长度的字符串,不够在字符串右侧用空格补充
printf("%-8s\n", "abcd"); //normal output abcd----
%.2s 最多输出2位长度的字符串
printf("%.2s\n", "abcd"); //normal output ab
%8.2s 最少输出8位,最多输出2位。首先按最多输出处理,截取字符串前两位,然后最少输出处理,由于不够8位,则在左侧用空格补充
printf("%8.2s\n", "abcd"); //normal output ------ab
%-8.2s 最少输出8位,最多输出2位。首先按最多输出处理,截取字符串前两位,然后最少
输出处理,由于不够8位,则在右侧用空格补充
printf("%-8.2s\n", "abcd"); //normal output ab------
%e 按指数的形式输出,基数按浮点型处理,小数点要6位,不够6位用printf怎么输出字符0补充,大于6位截取6位,并四舍五入。指数部分为e加上正负号及3位整数,并且不够补充到3位,但是不能大于3位,。如果没有指数,则用+000补充,但是不能有e而没有数字。比如“3.2e”这样是错误。
%e 正常输出
printf("%e\n", 3.21e2); //3.210000e+002
printf("%e\n", 0e2); //0.000000e+2
%e 没有指数用e+000补充
printf("%e\n", -3.21); //-3.210000e+000
%e 基数部分大于6位则进行截取,并四舍五入。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论