c语言printf输出float数据的问题

这个结果是如何得出的?
可以的话,解释的简单一点
谢谢

第1个回答  推荐于2017-12-16
printf输出实型数据的时候,%f默认输出,实型数据的小数位数是6位

%x是用于,以十六进制形式,输出整数

而这里,num是实数,所以类型不匹配,输出0追问

我不理解的是第一行最后两个,还有第二行中间两个

%f 输出了0.000000
%x 输出了40240000
我也觉得应该是10.000000和0

本回答被网友采纳
第2个回答  2015-01-19
%f是对应这个数为十进制实数输出,所以是10,默认小数点6位,
%x是把他认为是十六进数,10就是00010000,而整数部分长度默认是3位还是4位,反正那个1是没输出去,而在%x时,对那个数据进行了处理,使得之后的%f 不是输10.0了,而是输出变了很多又转回单精实型的一个数本回答被提问者采纳
第3个回答  2015-01-19
这个问题有点大了,建议你上网去搜一下浮点数的格式
相似回答