这里对于吨主题解释如何将字符串转换为十进制,但我怎么转换成十进制回字符串?
就像如果我这样做:
import decimal
dec = decimal.Decimal('10.0')
我怎么会采取dec
并获得'10.0'
(一个字符串)了呢?
这里对于吨主题解释如何将字符串转换为十进制,但我怎么转换成十进制回字符串?
就像如果我这样做:
import decimal
dec = decimal.Decimal('10.0')
我怎么会采取dec
并获得'10.0'
(一个字符串)了呢?
使用的str()
内置的 ,其中:
返回包含一个对象的一个很好的打印表示形式的字符串。
例如:
>>> import decimal
>>> dec = decimal.Decimal('10.0')
>>> str(dec)
'10.0'
使用字符串格式功能:
>>> from decimal import Decimal
>>> d = Decimal("0.0000000000000123123")
>>> s = '{0:f}'.format(d)
>>> print(s)
0.0000000000000123123
如果您只需键入投的数量为字符串它不会对指数工作:
>>> str(d)
'1.23123E-14'
import decimal
dec = decimal.Decimal('10.0')
string_dec = str(dec)
几乎所有的内置插件的小数类工作,你所期望的:
>>> import decimal
>>> dec=decimal.Decimal('10.0')
的字符串:
>>> str(dec)
'10.0'
一个浮点:
>>> float(dec)
10.0
一个int:
>>> int(dec)
10
对象表示(因为这将是在交互式解释):
>>> repr(dec)
"Decimal('10.0')"
有理数:
>>> import fractions
>>> fractions.Fraction(decimal.Decimal('0.50'))
Fraction(1, 2)
注意,使用%f
串格式显示要么转换成浮第一(或唯一的输出小数有限数量),因此失去精度。 您应该使用%s
或str()
显示存储在十进制的全部价值。
鉴于:
from decimal import Decimal
foo = Decimal("23380.06198573179271708683473")
print("{0:f}".format(foo))
print("%s" % foo)
print("%f" % foo)
输出:
23380.06198573179271708683473
23380.06198573179271708683473
23380.061986
(编辑:更新,以反映@马克的评论。)