c语言为什么int类型数据以%f输出会报错,但是float型数据以%d形式输出却不会报错? - 爱问答

(爱问答)

c语言为什么int类型数据以%f输出会报错,但是float型数据以%d形式输出却不会报错?

然后float以%d形式输出都是0,为什么?

若你的格式化字符与你实际参数类型不匹配,结果都会出错的,不存在float数据以%d输出不错这个说法的,也不存在程序会报错

c语言为什么int类型数据以%f输出会报错,但是float型数据以%d形式输出却不会报错?

这个原理相对复杂了

首先,你要了解编译后生成的汇编格式(数据放在栈中的)

其次,你要去了解下IEEE754的格式

一般只要知道格式化符必须与类型一致就可以了

比如说1,2,3,4。这种就是整数是int 而像1.222是实数 是float
%d按照十进制输出数据,%f就是按照实数输出可以有小数部分
double是双精度,双精度与单精度之间的区别在于两者的范围不同,其他都一样

你看%f——这里的f是指float,也就是单精度浮点型;%d——这里的d是指double,也就是双精度浮点型;而int是整型。在电脑语言中,浮点型和整型的存储方式不同,就像是圆形图案没办法嵌在正方形凹槽里一样,浮点型和整型冲突,无法互相识别。

而float和double的区别就是他们的区间大小不同,就像是小圆会从大的圆形凹槽里掉出来一样。

相关标签:c语言

下一篇:关于头像问题

上一篇:如何在robotstudio6.03中再安装RobotWare...5.61.05求怎么安

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?