Python 返回';十进制';value返回十进制(';value';),而打印时不返回

Python 返回';十进制';value返回十进制(';value';),而打印时不返回,python,decimal,Python,Decimal,当我返回十进制值并打印它时: return Decimal(number).quantize(Decimal(str(1 / 10 ** digits)), rounding=ROUND_HALF_UP) 它在这个十进制('')中打印输出 例如: [Decimal('1.20') Decimal('1.22') Decimal('1.42') Decimal('1.75') Decimal('2.77')] 1.20 1.20 1.22 1.42 1.75 2.77 但是当我在函数本身中打

当我返回十进制值并打印它时:

return Decimal(number).quantize(Decimal(str(1 / 10 ** digits)), rounding=ROUND_HALF_UP)
它在这个
十进制('')中打印输出

例如:

[Decimal('1.20') Decimal('1.22') Decimal('1.42') Decimal('1.75') Decimal('2.77')]
1.20
1.20
1.22
1.42
1.75
2.77
但是当我在函数本身中打印值时,它只打印值

例如:

[Decimal('1.20') Decimal('1.22') Decimal('1.42') Decimal('1.75') Decimal('2.77')]
1.20
1.20
1.22
1.42
1.75
2.77
一旦我退出函数,我如何才能在不在
Decimal(“”)


谢谢。

不确定
数字和
数字的值是多少,但是说:

from decimal import *
number = 10
digits = 2

x = Decimal(number).quantize(Decimal(str(1 / 10 ** digits)), rounding=ROUND_HALF_UP)

print(x)
>>> Decimal('10.00')
type(x)
>>> <class 'decimal.Decimal'>
float(x)
>>> 10.0
从十进制导入*
数字=10
数字=2
x=十进制(数字)。量化(十进制(str(1/10**位)),四舍五入=四舍五入
打印(x)
>>>十进制('10.00')
类型(x)
>>> 
浮动(x)
>>> 10.0
当我返回十进制值并打印它时:

return Decimal(number).quantize(Decimal(str(1 / 10 ** digits)), rounding=ROUND_HALF_UP)
返回小数(数字)。量化(小数(dstr(1/10**位)), 四舍五入=四舍五入(向上)

它在这个小数点(“”)内打印输出

事实并非如此。你没有打印出来。您的解释器在返回值后显示了一些内容。事实上,它选择显示
返回的字符串

调用
print
时,将显示
返回的字符串\uuuuu str\uuuuu()


阅读以了解repr和str的不同用途

在这两种情况下,打印方式不得相同。第一个结果是一步打印列表,第二个结果看起来像是您编写了一个单独打印每个元素的循环。在列表中,它将使用十进制的
repr
表示,这是不同的。您可以使用
[str(x)表示小数列表中的x]
。@9769953但是当您打印列表时,它会用引号将它们打印出来。您的第一个和第二个示例不一样:第一个是单小数,第二个是小数列表(或者几乎是一个列表:缺少逗号,所以我不能100%确定它是什么)。这就不同了。在每种情况下,显示用于打印值的代码。
quantize()
返回一个列表,不能将其转换为浮点。这也否定了使用
Decimal
类型的好处,它避免了浮点的不精确性。我肯定是这样的,但他们要求“一旦我退出函数,我如何才能在不在小数点(“”)内的情况下获得数值?”我假设使用
Decimal()
函数中的值很有用,但他们希望返回一个数字。不,他们只是不希望打印
十进制值。
十进制值是数字,他们只使用定点算术而不是浮点。