2012-01-16 122 views
0

我有以下号码:字符串格式化为一些

0006.5400 
0000.5400 
0000.0000 

我怎么会得到剥离左侧的所有前导零,除非第一个数字是零。 lstrip()是否有“限制”?

我能够解决这个问题在数据库级别,但好奇的反正。

+0

破折号表示负数吗? – 2012-01-16 19:29:48

+0

(不,我改变它使其更清晰。) – David542 2012-01-16 19:30:27

+0

@ David542你需要什么输出?所有领先的零删除或只是其中的几个? – jcollado 2012-01-16 19:33:41

回答

3

它们总是十进制字符串吗?

>>> float("0000.0000") 
0.0 
>>> float("0006.5400") 
6.54 
>>> float("0000.5400") 
0.54 

编辑:

马特以下建议,你也可以使用:

'%0.4f' % float("0000.5400")

+1

或''%.4f'%float(“0000.0000”)'可能 – Matt 2012-01-16 19:36:32

+0

谢谢指出:) – aayoubi 2012-01-16 19:40:57

1

这条左侧的微不足道零但保留右侧的零。

import decimal 
D = decimal.Decimal 

for s in ('0006.5400', '0000.5400', '0000.0000'): 
    print(D(s)) 

产生

6.5400 
0.5400 
0.0000 
0

也许最简单的办法就是使用lstrip(),然后添加必要的领先"0"