返回'Decimal'值返回十进制("值"),而打印它不会



当我返回小数值并打印它时:

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

它在此Decimal('')

中打印输出

示例:

[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('')

谢谢。

当我返回小数值并打印时:

返回十进制(数字(。 圆形= round_half_up(

它在此小数(''(

中打印输出

那是不正确的。您没有打印。返回值后,您的解释器显示了一些东西。实际上,它选择显示 <your_decimal_object>.__repr__()

返回的字符串

呼叫print时,您将显示<your_decimal_object>.__str__()返回的字符串

>>> from decimal import Decimal
>>> def decimal_function(number, digits, ROUND_HALF_UP):
        return Decimal(number).quantize(Decimal(str(1 / 10 ** digits)), rounding=ROUND_HALF_UP)
>>> a = decimal_function(1.0, 2, 'ROUND_HALF_UP')
>>> a
Decimal('1.00') 
>>> print(a)
1.00
>>> repr(a) # same as a.__repr__()
"Decimal('1.00')"
>>> str(a) # same as a.__str__()
'1.00'

阅读此内容以了解reter和str

的不同目的

不确定numberdigits的值是什么,但要说:

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

最新更新