gpt4 book ai didi

python - 为什么 Python 的 Decimal 将一些简单的值显示为指数以及如何防止它?

转载 作者:行者123 更新时间:2023-11-30 23:45:18 25 4
gpt4 key购买 nike

我理解指数的值,但通常在向最终用户显示十进制值时,外行更容易理解正常的十进制值。当我执行以下操作时,我希望小数点的显示值为 50,而不是:

>>> Decimal('22679.6185') / Decimal('28.349523125') / 16
Decimal('5E+1')

在不量化或不做任何修改实际值的情况下这可能吗?另外,为什么它以指数形式显示这样的短值,而以正常的十进制形式显示一些较长的值?这是 split 的产物吗(讽刺)?

最佳答案

您将看到默认的表示形式,您可以通过子类化 Decimal 来更改它。并压倒一切__str__和/或__repr__ .

请注意__repr__只是像 return "Decimal('%s')" % str(self) 那样实现,但您应该尝试保留 eval(repr(d)) == d 的不变量。

您可能更感兴趣的不是修改默认的 str 输出或类的表示形式,而只是控制实例的显示格式。在这种情况下,您应该能够使用 str.format 功能,例如

>>> num = Decimal('5E+1')
>>> num
Decimal('5E+1')
>>> print("{:f}".format(num))
50

关于python - 为什么 Python 的 Decimal 将一些简单的值显示为指数以及如何防止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9612961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com