1

我有一段代码正在查看来自某些计算并且非常精确的数字,并且该代码试图根据原始数字(在计算之前)找出正确的精度。然后它使用以下方法应用舍入:

with localcontext() as ctx:
    ctx.prec = 5 # simplification for the sake of this example
    my_figure = +my_figure

只要 my_figure 不等于零,一切都很好。这根本不影响零,因此它的精度与之前相同(不是本示例中的 5)。

my_figure = Decimal('0.0000...') # 0E-30, it comes from some calculations, not assigned like that
with localcontext() as ctx:
    ctx.prec = 5 # simplification for the sake of this example
    my_figure = +my_figure
    print my_figure # I get 0E-30, no rounding applied, I was expecting 0.0000

是否有任何适当的方法可以像它影响零一样做到这一点?

4

1 回答 1

0

Decimal.normalize你想做的事吗?它不会将精度保持为 5dp,但至少会将 0E-30 压缩到合理的水平。

于 2013-11-27T13:48:40.390 回答