当我返回一个十进制值并打印时:
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('')
谢谢。
答案 0 :(得分:0)
不确定number
和digits
的值是什么,但请说:
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
答案 1 :(得分:0)
当我返回一个十进制值并打印时:
返回Decimal(number).quantize(Decimal(dstr(1/10 ** digits)), rounding = ROUND_HALF_UP)
它将在此Decimal('')中打印输出
那是不对的。您没有打印出来。您的解释器在返回值后显示了一些内容。实际上,它选择显示<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'
阅读this以了解repr和str
的不同目的。