在C语言中,实数(即带有小数部分的数)主要有两种表示形式:浮点数 和 科学计数法,这两种形式本质上都对应C语言中的浮点类型(如 float、double、long double),只是书写方式不同。

(图片来源网络,侵删)
浮点数形式(Decimal Form)
这是最直观的实数表示方式,由整数部分、小数点和小数部分组成。
特点:
- 必须包含小数点()。
- 整数部分或小数部分可以省略,但不能同时省略。
- 可以包含正负号( 或 ),默认为正。
示例:
14 // 合法 -0.5 // 合法 .75 // 合法(省略整数部分) 10. // 合法(省略小数部分) +123.456 // 合法
错误示例:
123 // 错误:这是整数,不是实数 . // 错误:缺少整数或小数部分
科学计数法(Exponential Form)
科学计数法用于表示非常大或非常小的数,由尾数、指数标记(e 或 E)和指数组成。
格式:
尾数 e/E 指数
- 尾数:可以是浮点数形式(如
14)或整数(如123)。 - 指数标记:
e或E(不区分大小写)。 - 指数:必须是整数,可带正负号( 或 )。
特点:
- 指数部分表示10的幂次方。
- 尾数和指数都不能省略。
示例:
14e2 // 等于 3.14 * 10^2 = 314.0 1.5E-3 // 等于 1.5 * 10^-3 = 0.0015 .5e+4 // 等于 0.5 * 10^4 = 5000.0 123e0 // 等于 123 * 10^0 = 123.0
错误示例:
14e // 错误:缺少指数 e10 // 错误:缺少尾数 3.14e2.5 // 错误:指数必须是整数
两种形式的对比
| 特性 | 浮点数形式 | 科学计数法 |
|---|---|---|
| 适用场景 | 常规小数(如 14) |
极大/极小数(如 1e-10) |
| 必须包含 | 小数点() | 尾数、e/E、指数 |
| 指数部分 | 无 | 必须为整数 |
| 示例 | -0.5, .75 |
5E-3, 123e0 |
在C语言中的实际使用
这两种形式会被编译器自动识别为浮点类型(float、double 或 long double),具体取决于后缀或类型声明:
float f = 3.14f; // f后缀表示float double d = 1.5E-3; // 默认为double long double ld = .5L; // L后缀表示long double
- 浮点数形式:直接书写小数(如
14),适合常规数值。 - 科学计数法:通过
e/E表示指数(如1e-10),适合科学计算中的极大/极小值。
这两种形式在底层存储时都会转换为IEEE 754标准的二进制浮点数,但书写方式提供了灵活性和可读性。

(图片来源网络,侵删)

(图片来源网络,侵删)
