gpt4 book ai didi

python - Postgresql 数值类型在python中的显示

转载 作者:行者123 更新时间:2023-11-28 21:10:16 25 4
gpt4 key购买 nike

我有一个 postgresql 表,其列定义为:numeric(20,7)如果我插入值 0,它会将其保存为:0.0000000

当我将此值分配给 Python (2.7) 时,它显示 0E-7 是正确的,但格式错误。

为什么会这样显示?我该如何解决?

最佳答案

您可以格式化 Decimal只需将其传递给:

"{:f}".format(Decimal("0E-7"))

十进制 支持advanced string formatting :

# PEP 3101 support.  the _localeconv keyword argument should be
# considered private: it's provided for ease of testing only.
def __format__(self, specifier, context=None, _localeconv=None):
"""Format a Decimal instance according to the given specifier.

The specifier should be a standard format specifier, with the
form described in PEP 3101. Formatting types 'e', 'E', 'f',
'F', 'g', 'G', 'n' and '%' are supported. If the formatting
type is omitted it defaults to 'g' or 'G', depending on the
value of context.capitals.
"""

默认情况下,它似乎使用 Decimal 本身的精度:

>>> '{:f}'.format(Decimal('0E-7'))
'0.0000000'
>>> '{:f}'.format(Decimal('0E-8'))
'0.00000000'
>>> '{:f}'.format(Decimal('0E-9'))
'0.000000000'

另一方面,如果您想使用自定义精度,请以格式字符串传递它:

>>> print("{:.2f}".format(Decimal("0E-7")))
0.00

有关格式中不同字母含义的解释,请参阅 "Format Specification Mini-Language" .

关于python - Postgresql 数值类型在python中的显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36864579/

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