float型和double型的问题
有段程序是这样的:
struct stu
{
int num;
char *name;
char sex;
float score;
} boy1={102,"Zhang ping",'M',78.5},*pstu;
main()
{
pstu=&boy1;
printf("Number=%d\nName=%s\n",boy1.num,boy1.name);
printf("Sex=%c\nScore=%f\n\n",boy1.sex,boy1.score);
printf("Number=%d\nName=%s\n",(*pstu).num,(*pstu).name);
printf("Sex=%c\nScore=%f\n\n",(*pstu).sex,(*pstu).score);
printf("Number=%d\nName=%s\n",pstu->num,pstu->name);
printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score);
},运行正常,但是在我用double型替换float型后,如下,score项只显示0,这是为什么呢?
struct stu
{
int num;
char *name;
char sex;
double score;
} boy1 = { 102, "Zhang ping", 'M', 78.5 }, *pstu;
void main()
{
pstu = &boy1;
printf("Number=%d\nName=%s\n", boy1.num, boy1.name);
printf("Sex=%c\nScore=%d\n\n", boy1.sex, boy1.score);
printf("Number=%d\nName=%s\n", (*pstu).num, (*pstu).name);
printf("Sex=%c\nScore=%d\n\n", (*pstu).sex, (*pstu).score);
printf("Number=%d\nName=%s\n", pstu->num, pstu->name);
printf("Sex=%c\nScore=%d\n\n", pstu->sex, pstu->score);
}