《Python 3.x入门到应用实践》 —2.2.2 浮点数

举报
华章计算机 发表于 2020/02/08 22:36:41 2020/02/08
【摘要】 本节书摘来自华章计算机《Python 3.x入门到应用实践》 一书中第2章,第2.2.2节,作者是赵 军 等。

2.2.2  浮点数

浮点数(floating point)数据类型指的是带有小数点的数字,也就是数学上所指的实数(real number)。除了一般小数点的常规表示方法外,也可以使用科学记数法以指数形式表示,例如6e-2,其中6称为有效数,-2称为指数。表2-2所示都是合法的浮点数表示方式。

表2-2

image.png

计算机中的数字是采用IEEE 754标准规范来存储的,IEEE 754标准的浮点数并不能精确地表示小数,举例来说:

num = 0.1 + 0.2

得到的num并不等于0.3,而是0.30000000000000004。这不是Python独有的问题,所有的程序设计语言对浮点数运算都有精确度的问题,因此进行浮点数运算时必须特别小心。下面提供两个小数运算的方法供读者参考。

      使用decimal模块进行小数运算

decimal模块是Python标准模块库,使用它之前需要先用import指令导入这个模块,而后才能使用。正确导入这个模块之后,我们就可以使用decimal.Decimal类来存储精确的数字,如果参数为非整数,就必须以字符串形式传入参数,例如:

import decimal

num = decimal.Decimal("0.1") + decimal.Decimal("0.2")

这样运算后得到的结果就会是0.3。

      使用round()函数强制小数点的指定位数

round(x[, n])是内建函数,会返回参数x最接近的数值,n用来指定返回的小数点位数,例如:

num =  0.1 + 0.2 

print( round(num, 1) )

上面的程序语句是将变量num取到小数点后1位,因此会得到0.3的结果。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。