首页 > 电脑

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

更新时间2018-12-30 12:30:45

然后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求怎么安

下一篇:关于头像问题