![零基础学Python程序设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/24/43738024/b_43738024.jpg)
3.3 数字类型——浮点数
浮点数也称小数,与数学中的实数概念一致。它由整数部分和小数部分组成,也是人们生活中常用到的数字。例如,2.6、654.264、8.0等这样的数都称为浮点数。下面介绍浮点数的相关知识。
3.3.1 表示形式
我们日常生活中经常听到一些小数。例如,0.5有时为了方便经常被叫作“.5”(点5)。对于这种叫法我们都可以理解。但在Python中,小数不是那么随意表示的,需要遵循严格的形式。在Python中,小数的书写形式有两种,小数形式和指数形式。
1. 小数形式
Python中小数由3部分组成,整数部分、小数点和小数部分,如图3.17所示。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-67-1.jpg?sign=1738883982-ApxRCLvVavmCi0K4X9KJI1ayJ6z5zRTk-0-56d9cc7ba7104238b8b46140030ecf9c)
图3.17 小数形式
图中的3部分都不能省略。当小数部分为0时,也不能省略。例如,68.0是小数,但68是一个整数。
【实例3-5】书写有效的小数,并通过输出进行验证。
(1)书写的小数如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-67-2.jpg?sign=1738883982-12THQ5vBqOtig0xFGpHsg17W2ULoH2vQ-0-543aecb39bc4fb12c2be21c88dedd96f)
(2)在交互模式中,输入并执行这些小数后查看结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-67-3.jpg?sign=1738883982-G8s8HVX8PpFQiA19zeksmKmdYMSiqgnY-0-c60dbae80edb8db0323ef1aad009e87a)
输出结果与编写的小数完全一样。
2. 指数形式
指数形式是指使用科学计数法形式表示小数。科学计数法使用字母e或E作为幂的符号,以10为基数。形式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-68-1.jpg?sign=1738883982-RCaZX5mra1cShQZeP0wTECiXH2kg5bhE-0-950ea33c9b9c901ae69e5ddb4ae725f1)
其中,a表示小数,b表示次幂,为整数。例如,小数123000.0可以表示为1.23E5。
【实例3-6】书写有效的指数,并通过输出进行验证。
(1)书写的指数如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-68-2.jpg?sign=1738883982-0bdxBaOEQnlDDqmLEzY62ENDWZgF4OoL-0-4de38250ddef782c8685b55d172ac947)
(2)在交互模式中,输入并执行这些指数后查看结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-68-3.jpg?sign=1738883982-Om26KRkVCRYpXbkh8RDmwpyEmVzF8yf6-0-572607eb8e265ad0c740b9075f9c228e)
输出结果表示,自动将指数转换为了浮点数。
3.3.2 浮点数的精确度问题
由于计算机内部的存储问题,不是每个小数都可以精确表示的,所以小数存在精确度问题。在Python中,浮点数的数值范围和小数精度受不同计算机系统的限制。为了更清楚地了解浮点数的精确程度,Python提供了对应的功能,可以详细列出系统支持的浮点数各项参数,通过这些参数可以了解精确程度。
【实例3-7】下面通过代码查看浮点数各项参数。
(1)需要使用的代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-68-4.jpg?sign=1738883982-ynaRYOWImVRC1VF4nIiXMvc0eUq5U8T9-0-1c3fe26c7b5b7e274bb9df83dfbb4708)
(2)在交互模式中,输入并执行以上代码后查看结果,如图3.18所示。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-68-5.jpg?sign=1738883982-y3dedbVORz0cxMFYoASYBLgOnCc1qk67-0-654af6c1bab84054950eb62cbbb67362)
图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,并查看执行结果,如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-69-1.jpg?sign=1738883982-yJU6A6jsEn61IvEEAuQM00R59QfDY2yu-0-a1d6d9a864e3e1e8fd7ee3117d40361e)
输入的浮点数为1.234567890123456789,共19位,执行结果为1.2345678901234567,共17位。