这是一个解释我的目的的例子:
c = Decimal(10) / Decimal(3)
c = Decimal(10) / Decimal(2)
如果我这样做,那么打印c,引发不精确和圆形的标志。即使结果是准确的。因此,旗帜不应该是数字的属性而不是上下文吗?当我使用堆栈编程冗长计算时,这个问题尤为明显。
提出一个更有意义的问题:我该如何正确处理这个问题? 看来我必须手动跟踪所有内容。如果我在计算之前清除标记,我会丢失一些关于之前计算的数字的信息。这可能现在看起来准确。使用像1.0000000154342这样的数字时,这尤其令人讨厌。
对于关键应用程序,确定哪些是准确的,哪些是不准确的将是非常好的。如果没有引发错误的标志也会很好,因为它看起来很糟糕。
它仍然认为这背后有一个很好的理由,我还没有理解。我要感谢你的解释。
答案 0 :(得分:0)
阅读本文:http://docs.python.org/library/decimal.html#context-objects
您可以保存和恢复上下文对象,这样就不会丢失标记值。