其他的数字类型——小数类型——小数上下文管理器

未匹配的标注

在Python2.6和3.0还有更新的版本中,还可以通过使用with上下文管理器语句来临时重置精确度。当with语句块结束时,精度被重置为原来的值;在一个新的Python 3.3 会话中(根据第3章这里的"..."在一些界面中是Python的连续行交互提示符而且需要手动缩进;IDLE略去了这个提示符并自动缩进):

C:\code> C:\Python33\python
>>> import decimal
>>> decimal.Decimal('1.00') / decimal.Decimal('3.00')
Decimal('0.3333333333333333333333333333')
>>>
>>> with decimal.localcontext() as ctx:
... ctx.prec = 2
... decimal.Decimal('1.00') / decimal.Decimal('3.00')
...
Decimal('0.33')
>>>
>>> decimal.Decimal('1.00') / decimal.Decimal('3.00')
Decimal('0.3333333333333333333333333333')

虽然很有用,但这个语句需要比目前获得的多得多的背景知识;关注第34章with语句的讲解。

因为小数类型的使用在实践中仍然是相对稀少的,更多细节将推迟到Python的标准库手册和交互式帮助。还因为小数和分数类型一样,解决了一些同样的浮点精确性问题,所以前进到下一节来看看这两个是如何比较的。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~