
3.3 数字类型——浮点数
浮点数也称小数,与数学中的实数概念一致。它由整数部分和小数部分组成,也是人们生活中常用到的数字。例如,2.6、654.264、8.0等这样的数都称为浮点数。下面介绍浮点数的相关知识。
3.3.1 表示形式
我们日常生活中经常听到一些小数。例如,0.5有时为了方便经常被叫作“.5”(点5)。对于这种叫法我们都可以理解。但在Python中,小数不是那么随意表示的,需要遵循严格的形式。在Python中,小数的书写形式有两种,小数形式和指数形式。
1. 小数形式
Python中小数由3部分组成,整数部分、小数点和小数部分,如图3.17所示。

图3.17 小数形式
图中的3部分都不能省略。当小数部分为0时,也不能省略。例如,68.0是小数,但68是一个整数。
【实例3-5】书写有效的小数,并通过输出进行验证。
(1)书写的小数如下:

(2)在交互模式中,输入并执行这些小数后查看结果,如下:

输出结果与编写的小数完全一样。
2. 指数形式
指数形式是指使用科学计数法形式表示小数。科学计数法使用字母e或E作为幂的符号,以10为基数。形式如下:

其中,a表示小数,b表示次幂,为整数。例如,小数123000.0可以表示为1.23E5。
【实例3-6】书写有效的指数,并通过输出进行验证。
(1)书写的指数如下:

(2)在交互模式中,输入并执行这些指数后查看结果,如下:

输出结果表示,自动将指数转换为了浮点数。
3.3.2 浮点数的精确度问题
由于计算机内部的存储问题,不是每个小数都可以精确表示的,所以小数存在精确度问题。在Python中,浮点数的数值范围和小数精度受不同计算机系统的限制。为了更清楚地了解浮点数的精确程度,Python提供了对应的功能,可以详细列出系统支持的浮点数各项参数,通过这些参数可以了解精确程度。
【实例3-7】下面通过代码查看浮点数各项参数。
(1)需要使用的代码如下:

(2)在交互模式中,输入并执行以上代码后查看结果,如图3.18所示。

图3.18 查看浮点数各项参数
输出结果的各项参数含义如下。
❑ max:浮点数类型所能表示的最大值。
❑ max_exp:基数(radix)为2时最大值的幂。
❑ max_10_exp:科学计数法表示下最大值的幂。
❑ min:浮点数类型所能表示的最小值。
❑ min_exp:基数(radix)为2时最小值的幂。
❑ min_10_exp:科学计数法表示下最小值的幂。
❑ dig:能准确计算的浮点数最大个数。
❑ mant_dig:科学计数法表示中系数(<a>)的最大精度。
❑ epsilon:计算机所能分辨的两个相邻浮点数的最小差值。
【实例3-8】验证浮点数的精确度。在在交互模式中,输入浮点数1.234567890123456789,并查看执行结果,如下:

输入的浮点数为1.234567890123456789,共19位,执行结果为1.2345678901234567,共17位。