浮点型数据是用来表示具有小数点的实数的。为什么在C中把实数称为浮点数呢?在C语言中,实数是以指数形式存放在存储单元中的。一个实数表示为指数可以有不止一种形式,如3.14159可以表示为:3.14159×10e0,0.314159×10e1,0.0314159×10e2,31.4159×10e-1,314.159×10e-2等,它们代表同一个值。可以看出:小数点的位置是可以在314159几个数字之间和之前或之后(加0)浮动的,只要在小数点位置浮动的同时改变指数的值,就可以保证它的值不会改变。由于小数点位置可以浮动,所以实数的指数形式称为浮点数。
在指数形式的多种表示方式中把小数部分中小数点前的数字为0、小数点后第1位数字不为0的表示形式称为规范化的指数形式,如0.314159×10e1就是3.14159的规范化的指数形式。一个实数只有一个规范化的指数形式,在程序以指数形式输出一个实数时,必然以规范化的指数形式输出,如0.314159e001.
浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double(长双精度浮点型)。
(1)float型(单精度浮点型)。编译系统为每一个float型变量分配4个字节,数值以规范化的二进制数指数形式放在存储单元中。在存储时,系统将实型数据分成小数部分和指数部分两个部分,分别存放。小数部分的小数点前面的数为0.如3.14159在内存中的存放形式可以用图1表示。