浮点型变量用于存储小数数值,C语言提供了三种主要的浮点数类型:单精度浮点型(float)、双精度浮点型(double)、长双精度浮点型(long double)。
类型 | 占用空间 | 取值范围 |
---|---|---|
float | 4字节 (=32位) | ? 1.4 ? 1 0 ? 45 -1.4*10^{-45} ?1.4?10?45 ~ ? 3.4 ? 1 0 + 38 -3.4*10^{+38} ?3.4?10+38, 1.4 ? 1 0 ? 45 1.4*10^{-45} 1.4?10?45 ~ 3.4 ? 1 0 + 38 3.4*10^{+38} 3.4?10+38 |
double | 8字节 (=64位) | ? 4.9 ? 1 0 ? 324 -4.9*10^{-324} ?4.9?10?324 ~ ? 1.7 ? 1 0 + 308 -1.7*10^{+308} ?1.7?10+308, 4.9 ? 1 0 ? 324 4.9*10^{-324} 4.9?10?324 ~ 1.7 ? 1 0 + 308 1.7*10^{+308} 1.7?10+308 |
long double | 12字节 (=96位) | … |
对于不同编译器:
类型 | 16位编译器 | 32位编译器 | 64位编译器 |
---|---|---|---|
float | 4字节 | 4字节 | 4字节 |
double | 8字节 | 8字节 | 8字节 |
float f = 123.4f;
double d1 = 101.1;
double d2 = 299.4;
double x = 123.456e+3; // 123.456 * 10^3
0.3E6
// 等同于
.3E6
3.0E6
// 等同于
3.E6
float a = 3.14159f; //单精度浮点常量处理
long double b = 1.23L; //long double类型处理