浮点数变量类型
C语言中有三种浮点数变量类型,分别占用不同内存空间并具备不同的精度与范围(通常遵循 IEEE 754 标准,但具体字节数和范围可能因机器和编译器而异):
| 关键字 | 字节数 | 数值范围与精度 |
|---|---|---|
float | 4 | ±3.4E±38(精确到 6 到 7 位小数) |
double | 8 | ±1.7E±308(精确到 15 位小数) |
long double | 12 | ±1.19E±4932(精确到 18 位小数) |
核心特性与注意事项
- 精度限制:小数精确位数仅为大约值。因为浮点数内部以二进制存储,许多十进制小数(如
0.1)在二进制中无法精确表示,存在固有误差。 - 默认类型规则:代码中写下的任何带小数点的字面量(如
2.5、100.0)或指数形式(如3E8),默认均为double类型。
类型后缀与声明初始化
为匹配变量类型,常量需加特定后缀:
// 1. float 类型:加 f 或 F(即使带指数或小数点)
float radius = 2.5f;
float speed = 1E3F; // 指数形式加F,为float类型
// 2. double 类型:默认无后缀(或加 lf/lf 极少用)
double biggest = 123E30; // 3E8 默认是 double
double weight = 3.14;
// 3. long double 类型:加大写 L 或小写 l(推荐大写L防混淆)
long double huge = 1234567.89123L;Code language: JavaScript (javascript)
Previous: 浮点数的内存存储结构
Next: 浮点数除法