double与float的详解

scanf读%f时,系统会读取4字节长度,放到float的空间。
double有8字节空间,float和double的关系不像int和long的关系那样,简单的在后面增加4字节的位置,是两个不同的存储区域



所以读取时类型务必要对应


printf时,C里的float其实在使用过程中被隐式转换成了double

所以在printf时用float还是double其实是一样的。用%f和%lf都可以。


但是请注意!!!

不同的编译器其实对printf中double有着不同的处理


1.codeblocks


在codeblocks中printf对double和float是统一%f输出


double与float的详解


2.devc++


在devc中double和float可以用%f,double也可以用%lf进行输出

double与float的详解



double与float的详解


所以,为了保证兼容性,输出还是使用%f吧。

大家其实也发现了,进行格式输出时,最后一位是四舍五入