中易网

VC++6.0中的%d和%f等有什么区别?

答案:2  悬赏:40  
解决时间 2021-02-27 14:45
比如说我输入:
#include
main()
{
float n;
n=2211.12;
printf("n=%f",n);
}
如果为%f的话输出是:2211.12,但如果printf里变成%d的话,结果就是-2147483648,这是什么原因?%d的意思不是以十进制格式输出吗。。?那不就应该还是原来的数不变么。。?我刚学C语言~。。还有,为什么如果把前面的float改成int在用%d输出就可以了呢(输出是2211)~。。?我感觉既然%d表示以十进制格式输出那不论定义的n是什么型都应该按照原数输出啊。。
最佳答案
#include
main()
{
float n;
n=2211.12f;
int i;
i=n;
printf("n=%f",n);
printf(" i=%d",i);
}
如果这样写i是2211,这涉及浮点型和整形的转换问题,float占4字节,有的字节是表示整数位,有的小数位,具体可以看浮点型定义;int型也是4字节,但都是表示的是整数。用i=n赋值,就把浮点型对应的整数值传给整形,进行了转换,如果直接%d输出显示,默认的包浮点型所占的4字节内存全部当成整形输出,故是乱码!
全部回答
刚 入门 吧? 好好看看资料吧 再看看别人怎么说的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
魔兽争霸RPG伏魔战记玩到一半就提示内存不够
软件下载网站哪个好
哪些商品由物价局定价
我想在家控制单位的电脑?应该怎么弄阿?
山东滨州环海线缆有限公司这个地址在什么地方
中国移动新街营业厅在哪里啊,我有事要去这个
java 中有父类 子类 内部类 还有什么类?他们
妈妈过生日,贝贝为妈妈定做了一个圆柱形生日
sap开发常用日语有哪些
青海公路门源公路段盘坡工区地址在什么地方,
求一款RPG类的麻将游戏
电脑内置喇叭如何发出声音
iphoneQQ隐身后,为什么还是显示在线,而且是
被拉稀的狗抱了一头会不会感染狂犬
苹果6plusID解不开了 还能卖多少钱
推荐资讯
上海工商外国语学院德语专业好吗?
吃什么去斑最快最有效
家用电表接线错误会导致电表跑得快吗
vivoy37最新系统是不是4,7寸
想买台电脑上学 能玩NBA2K14使命召唤7之类的
姿润地址在什么地方,想过去办事
天利宾馆在哪里啊,我有事要去这个地方
2CH4+2O2点燃=co2+2h2o.可以得到什么信息
你好,问一下 注销外国人就业证,还可以停留
北沟门子乡在什么地方啊,我要过去处理事情
为什么将秦始皇陵的兵马俑称为世界第八大奇迹
水星是最短的旋转周期行星吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?