2.2.2 浮点型
1.浮点型常量
浮点型常量即实数,主要有两种表示形式。
(1)十进制小数形式。它由正负号、数字、小数点组成,其中小数点是必须有的,如3.45、0.25、.78、96.、-12.5、0.0都是合法的。
(2)指数形式。一般形式为xEy或xey,表示
,其中y必须是整数,如:2.15e1(即21.5),.005E2(即0.5), 3.6e3(即 3600)。
2.浮点型变量
浮点型变量主要有单精度(float型)和双精度(double型)两种,一般它们在内存中分别占4个字节和8个字节。如下所示,定义了一个单精度浮点型变量i和一个双精度浮点型变量j。
单精度浮点型变量的取值范围约在
,有效数字是7位。双精度浮点型变量的取值范围约在
,有效数字是16位。一般在使用中,单精度浮点型即float型已足够,但为了增加有效位数则可以使用double型。下面以例2-3来说明有效位数的概念。
例2-3
#include int main( ) { float a=88888.88888; /*整数部分5位,小数部分5位*/ double b=8888888888.888888888; /*整数部分10位,小数部分9位*/ printf("a is %f",a); printf("b is %f",b); } |
程序说明。
(1)本程序定义了两个浮点型变量,分别为单精度和双精度,并赋予了初值。
(2)"%f"表示此处输出一个浮点型变量,且小数点后最多输出6位。
编译并运行程序结果如下所示:
$ gcc -o test test.c $ ./test a is 88888.890625 b is 8888888888.888889 |
在本例中,由于a是单精度浮点型,有效位数只有7位。而整数已占5位,故小数点两位之后均为无效数字。小数部分的9是四舍五入的结果,它是最后一位有效位。同样的,b是双精度型,有效位为16位。小数部分的9也是四舍五入的结果,它也是最后一位有效位。%f规定小数点后最多保留6位,所以小数部分只输出了6位。