python学习笔记12-其他数据类型

基础知识:

             “浮点数学缺乏精确性”:因为用来存储数值的空间有限。如下:

打印结果会产生一个用户友好的显示格式但并不能完全解决问题,因为与硬件相关的浮点数运算在精度方面有内在的缺陷。

不过使用小数对象,结果能够进行改正:

我们能通过decimal模块中的Decimal的构造函数创建一个小数对象,并传入一个字符串,这个字符串有我们希望在结果中显示的小数位数。当不同精度的小数在表达式中混编时,python会自动升级为小数位数最多的:

在python3.1之后,将能从一个浮点对象创建一个小数对象,通过decimal.Decimal.from_float()形式的调用。这一转换是精确的,但有时候会产生较多的位数。

设置全局精度:

decimal模块中的其他工具可以用来设置所有小数值的精度、设置错误处理等。

小数上下文管理器:

可使用上下文管理器语句来重新设置临时精度,在语句推出之后,精度又重新设置为初始值:

分数类型:

在python2.6和python3.0 引入了一种新型的数字类型--分数,它事先了一个有理数对象。它明确地保留了一个分子和一个分母,从而避免了浮点数学的默写不确定性和局限性。

警告:尽管可以把浮点数转换为分数,在某些情况下,这么做的时候会有不可避免的精度损失,因为这个数字在其最初的浮点形式下是精确的。

猜你喜欢

转载自blog.csdn.net/qq_34608423/article/details/88718657