C语言中的基本数据类型--实型数据
时间:2010-03-19 来源:LaoLiulaoliu
一、实型常量 实型也称为浮点型,实型常量也称为实数或浮点数。 1.在纯C中,实型常量只能用十进制表示,但是有两种形式。 (1)十进制小数形式:由数字0-9以及小数点构成,其中,小数点是必不可少的,如356.0、12.2等都是合法实数,65不是合法实数,因为缺少了小数点。 (2)指数形式:由十进制数加阶码标志“E/e”组成,一般形式为a E n,其中a为十进制整数,E为阶码标志,n为十进制整数作为阶码,如123E5表示123*10^5,使用指数形式时,要注意E之前必须有数字,之后的阶码必须为整数。和数学中的科学计数法不同,一个实数可以有多种指数形式,如123.789可以表示为1.23789E2或12.3789E1或0.123789E3这些都是合法的,但是只有第一种才是规范化的指数形式,程序唉输出结果时都是以该种形式输出,但是其他形式在使用是也没有任何错误。 2.在纯C中,也可以使用后缀“F/f”来声明一个数是浮点数,如365F和365.0是等价的。 3.实例程序 main() { printf("%f\n",365.0); printf("%f\n",365); printf("%f\n",365F); } 运行结果是 365.000000 0.000000 365.000000 第二行输出错误的原因是,由于在使用时没有加入小数点,也没有使用后缀F将其声明为浮点数,所以365不是合法实数,不被编译器认可。 二、实型变量 1.实型数据在内存中的存放形式:实型数据在内存中被分为符号部分,小数部分和指数部分三部分存放,例如-1.23456在内存中被分为“-”、“.123456”、“1”三个部分,一个实型数据占用4个字节的内存空间(1byte=8bits)通常,一般的C语言编译器会占用24位存放小数,8位存放指数,事实上,电脑在存取小数部分时,是以二进制形式的,而指数部分则是以2的幂指数形式存放的。 2.实型数据的小数位数越多,代表有效数字越多,精度也就越高,而指数位数越多,器表示的数的范围就越大。 3.实型变量的分类:实型变量可以分为三类, (1)单精度型:占用4字节内存空间,数值范围为3.4E-38到3.4E+38,有效数字为七位。 (2)双精度型:占用8字节内存空间,数值范围为1.7E-308到1.7E+308,有效数字为十六位。 (3)长双精度型:只是知道有这种数据类型,不过没有具体的数据,那位高人知道的话请补充一下。 4.实型变量的定义格式和规则与整型数据相同,所以每一个实型数据在使用前必须先定义。 实例: float m,n; /*定义m,n为单精度实型变量*/ double a,b,c; /*定义a,b,c为双精度实型变量*/ 实例2: main() { float a; double b; a=5555.55555; b=5555.5555555555; printf("%f\n%f\n",a,b); } 运行结果为5555.555664 5555.555556 分析:变量a被定义为float,变量b被定义为double,所以a的有效数字为七位,所以输出时5555.555之后的数字是无效的,而b的有效数字虽然为十六位,但是由于具体编译器的限制,只运算到小数点后六位,其余位数四舍五入。 P.s编程技巧:对于实型数据,由于精度差别,大小差异极大的数值直接进行运算可能会丢失一部分数据。 |
相关阅读 更多 +