浮点数变量类型

浮点数变量类型

C语言中有三种浮点数变量类型,分别占用不同内存空间并具备不同的精度与范围(通常遵循 IEEE 754 标准,但具体字节数和范围可能因机器和编译器而异):

关键字字节数数值范围与精度
float4±3.4E±38(精确到 6 到 7 位小数)
double8±1.7E±308(精确到 15 位小数)
long double12±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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注