《Python 3.x入门到应用实践》 —2.2.2 浮点数
2.2.2 浮点数
浮点数(floating point)数据类型指的是带有小数点的数字,也就是数学上所指的实数(real number)。除了一般小数点的常规表示方法外,也可以使用科学记数法以指数形式表示,例如6e-2,其中6称为有效数,-2称为指数。表2-2所示都是合法的浮点数表示方式。
表2-2
计算机中的数字是采用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的结果。
- 点赞
- 收藏
- 关注作者
评论(0)