我有两个字符串
string1 = '1000000000.0'
string2 = '1000000000.09'
from decimal import Decimal
Decimal(string1).normalize()
给出
Decimal('1E+9')
和
Decimal(string2).normalize()
给出
Decimal('1000000000.09')
我真的想要的就像上面那样。
那么string1如何可以作为十进制(1000000000)而不是十进制(' 1E + 9') 和string2为十进制(' 1000000000.09'),我目前进入。!!
答案 0 :(得分:0)
您可能想要使用字符串格式。这使您可以非常精确地控制数据的表示方式 - 请参阅documentation on str.format
了解完整(以及初学者的一点复杂)说明。
回答您的具体要求:
from decimal import Decimal
string1 = '1000000000.0'
string2 = '1000000000.09'
fstr = '{:10.0f} {:12.2f}'
print(fstr.format(Decimal(string1), Decimal(string2)))
您应该找到输出
1000000000 1000000000.09
为了让人们更容易理解您的输出,您可能希望将fstr
更改为'{:10,.0f} {:12,.2f}'
- 逗号表示将整数部分拆分为以逗号分隔的三个组,并且你应该看到输出
1,000,000,000 1,000,000,000.09
答案 1 :(得分:0)
此功能可以理解
def DecimalHandler(string):
if re.match('^\d*[.]?\d*$',string):
Frst = string.split('.')[0]
try:
secnd = string.split('.')[1]
secnd = re.sub('[0]+$','',secnd)
if secnd != '' :
secnd = '.'+secnd
else:
secnd = secnd
except IndexError:
secnd = ''
OutPut_Str = Frst+secnd
else:
print("...")
OutPut_Str = string
return(OutPut_Str)