我想用C语言输出一个9位的学号,并在后面家上00,请问怎么写?

如题所述

如果是整形数,则输出格式为:
int num=1234567;
printf("%09d", num ); //总输出长度为9个字符,不足位,前补0
输出:001234567追问

但是如果我用num=123456789*100后,printf输出会出现-15472542这类的数怎么办?

追答

这样就溢出了,不能用整型数据来表示了。
整型数最多表示10位以内的数据 有符号数2^31-1
换成double就好了,方法如下:
double num=123456789 ;

printf("%012.0f", num * 100 ); //总输出长度为12个字符,不足位,前补0
输出
012345678900
但double也不能超过16位数据,否则,也会出现错误

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-08
int number= 123456789;
printf("%09d00\n", number);追问

但是如果我用num=123456789*100后,printf输出会出现-15472542这类的数怎么办?

追答

int 溢出了,可以换成 double
printf("%lf\n", num);

追问

但是最大只能输出xxxxxxxxx899.9999999

相似回答