在 C语言中,浮点型数据类型可分为:float(单精度)、double(双精度)、long double(长双精度)。
浮点型数据包括浮点型常量和浮点型变量
- 浮点型常量
I. 小数形式
由数字和小数点组成,且必须有小数点,如:1.23、0.65、.29、7.、0.0。
II. 指数形式
以幂的形式表示,由字母e或E后跟一个以10为底的幂数,字母e或E前必须有数字,字母e或E后面的指数必须为整数,如:1.2e3、100e-8、.5E5、8.9E0。
III. 数据类型
默认为double型,当后缀为f或者F时表示该数为float型,当后缀为l或者L时表示long double型,如:1.2f、.6F、12.34l、5.6E3L。 - 浮点型变量
I. 单精度
类型说明符:float,精度:6(6位小数),表示的数值范围:1.2E-38 ~ 3.4E+38,存储大小:4字节
II. 双精度
类型说明符:double,精度:15(15位小数),表示的数值范围:2.3E-308 ~ 1.7E+308,存储大小:8字节
III. 长双精度
类型说明符:long double,精度:19(19位小数),表示的数值范围:3.4E-4932 ~ 1.1E+4932,存储大小:16字节
实例
#include <stdio.h>
int main()
{
double a = 8.888888;
float b = 1.2f;
float c = 3.3e3F;
long double d = 5.678l;
long double e = 9e9L;
/* %f:以小数形式输出double和float类型浮点数,%Lf:以指数形式输出long double类型浮点数 */
printf("double a小数形式的值 : %f\n", a);
printf("float b小数形式的值 : %f\n", b);
printf("float c小数形式的值 : %f\n", c);
printf("long double d小数形式的值 : %Lf\n", d);
printf("long double e小数形式的值 : %Lf\n", e);
/* %e或%E:以指数形式输出double和float类型浮点数, %Le或%LE:以指数形式输出long double类型浮点数*/
printf("double a指数形式的值 : %e\n", a);
printf("float b指数形式的值 : %e\n", b);
printf("float c指数形式的值 : %E\n", c);
printf("long double d指数形式的值 : %Le\n", d);
printf("long double e指数形式的值 : %LE\n", e);
printf("float 存储大小 : %ld byte\n", sizeof(float));
printf("double 存储大小 : %ld byte\n", sizeof(double));
printf("long double 存储大小 : %ld byte\n", sizeof(long double));
return 0;
}
以上程序输出:
double a小数形式的值 : 8.888888
float b小数形式的值 : 1.200000
float c小数形式的值 : 3300.000000
long double d小数形式的值 : 5.678000
long double e小数形式的值 : 9000000000.000000
double a指数形式的值 : 8.888888e+00
float b指数形式的值 : 1.200000e+00
float c指数形式的值 : 3.300000E+03
long double d指数形式的值 : 5.678000e+00
long double e指数形式的值 : 9.000000E+09
float 存储大小 : 4 byte
double 存储大小 : 8 byte
long double 存储大小 : 16 byte