的不同目的
当我返回小数值并打印它时:
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
不确定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