![C语言程序设计案例式教程(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/946/53180946/b_53180946.jpg)
上QQ阅读APP看书,第一时间看更新
3.浮点型
浮点型又称实型,是指包含小数部分的数据类型。C语言中的浮点型主要包括float(单精度浮点型)和double(双精度浮点型)两种,double类型变量表示的浮点数比float类型变量表示的浮点数更精确。
表2-11列举了float类型和double类型占用的存储空间大小及其取值范围。其中E表示以10为底的指数,E后面的“+”和“-”分别代表正指数和负指数,例如,1.4E-45表示1.4×10-45。
表2-11 浮点型占用的空间及其取值范围
![](https://epubservercos.yuewen.com/9D96AB/31664444103586106/epubprivate/OEBPS/Images/figure-0040-0042.jpg?sign=1738955480-jtq1fzvLSVaoW293z9NIoFqLBIf6VGf4-0-5ca0e72e499db27c5034ebe655d040ea)
为了帮助读者更好地理解浮点型数据在内存中的存储方式,下面以单精度浮点数3.14159为例,讲解浮点型数据在内存中的存储方式。编译器在存储浮点型数据3.14159时,会将浮点数分成符号位、小数位和指数位3个部分,然后分别存储到内存单元中,如图2-8所示。
![](https://epubservercos.yuewen.com/9D96AB/31664444103586106/epubprivate/OEBPS/Images/figure-0040-0043.jpg?sign=1738955480-cb6jkV0bho3LUsj4pzMLgM3kJFQ49cNy-0-4c8298f3612af9cc8ecaaf185d24752a)
图2-8 单精度浮点数的存储方式
在图2-8中,小数3.14159在内存中的符号位为“+”,小数部分为“.31415”,指数位为“1”,合在一起为+0.314159×101= 3.14159。
在定义浮点型变量时,可以在float类型变量赋值的后面加上大写字母“F”或小写字母“f”;在double类型变量赋值的后面加上大写字母“D”或小写字母“d”,具体示例如下。
float f1 = 123.4f; //为一个float类型变量赋值,后面可以加上字母f float f2 = 123.4; //为一个float类型变量赋值,后面可以省略字母f double d2 = 199.3d; //为一个double类型变量赋值,后面可以加上字母d double d1 = 100.1; //为一个double类型变量赋值,后面可以省略字母d
浮点型常量默认是double类型(如2.56),占据8字节。在浮点型常量后面加上“F”或“f ”,该数据就是float类型(如2.56f为float类型),占据4字节。