4. 浮点数类型
C 语言的数字类型大致有两种:整数和小数。
小数:
小数是指包含整数部分和小数部分的数字,在C语言中,小数通常用浮点数类型表示,包括 float、double 和 long double,共计三种。
例如:
- 圆周率:3.1415926
- 身高:1.73米
浮点数类型
数据类型
字节数
中文名
精度
float
4
单精度浮点型
6-7位十进制小数
double
8
双精度浮点型
15-16位十进制小数
long double
10或16(硬件相关)
长双精度浮点型
18-19位十进制小数
说明:
- 浮点数都是有符号的小数,其中最高位代表符号位。
- 浮点数的存储方式大都是小数加指数的存储方式,小数部分存储 0.5 ~ 1 之间的小数部分。 指数部分存储 2 的 n 次方中的n。
- 例如:小数6.0 将会转化为 0.75 乘以 2 的 3 次方的形式。小数部分存储 0.75,指数部分存储 3。
浮点数的常用存储方法:
- float(单精度浮点数)
- 1 位符号位。
- 8 位指数部分。
- 23 位小数部分(隐含开头的 1,实际精度为24位)。
- double(双精度浮点数)
- 1 位符号位。
- 11 位指数部分。
- 52 位小数部分(隐含开头的 1,实际精度为53位)。
- long double(长双精度浮点数)
- 1 位符号位。
- 15 位指数部分。
- 64 位或以上小数部分(具体依照硬件)。
以上数据浮点数类型的数据在 C 语言编译器中已经实现,一般开发者无需关注浮点数的具体存储细节。
练习:
下列内容使用什么数据类型存储比较合适?
- 身高(厘米)
- 体重(公斤)
- 年龄
- 央行黄金储量(克)
- 上证指数