从浮点中删除小数点的Python迷你语言格式规范

从浮点中删除小数点的Python迷你语言格式规范,python,number-formatting,mini-language,Python,Number Formatting,Mini Language,我正在使用Python的format mini语言引用字典。对于字典中的一个浮点数,我希望打印时不带小数点 例如: a_dict = {'a_float' : 321.5241, 'b_float' : 0.011322, 'c_float' : 24.12354} out = ('1 25142U {a_float:9.3f}\n' '2 {b_float}{c_float:10.3f}').format(**a_dict) print

我正在使用Python的format mini语言引用字典。对于字典中的一个浮点数,我希望打印时不带小数点

例如:

a_dict = {'a_float' : 321.5241,
          'b_float' : 0.011322,
          'c_float' : 24.12354}

out = ('1 25142U {a_float:9.3f}\n'
      '2 {b_float}{c_float:10.3f}').format(**a_dict)

print out
返回:

>>> 1 25142U   321.524
>>> 2 0.011322    24.123
但是,我希望格式化b_float(以删除“0”),以便打印输出返回:

>>> 1 25142U   321.524
>>> 2 011322    24.123
在小型语言格式规范的上下文中,这可能吗

我知道这可以通过(a)传入单个项(并在参数中编辑它们)而不是字典本身,或者(b)对输出字符串进行后处理来实现,但我想知道Python的迷你语言是否足够复杂,足以将这个问题简化为迷你语言的格式规范


(对于那些对此动机感兴趣的人,我正试图从卫星参数字典中打印出一个TLE。如果你感兴趣,谷歌/维基百科可能会告诉你更多,但每个字符的位置很重要,并且它假定某些项目(如偏心率)的小数点位置。)

repr将浮点转换为字符串,然后拆分字符串

repr(0.011322).split('.')[-1]
or 
repr(0.011322)[2:]

output
011322

愚蠢的问题:你能不能只是后处理?如果字符串缺少句点,则可以执行以下操作:
'{a_float}.format(**a_dict).replace('.','')
如果需要更多尾随零,如示例中所示,可以在格式化时执行此操作,或者使用
.ljust(8,'0')进行后续操作
扩展到固定宽度。第二个字符串不是从第一个字符串中删除小数点得到的。你能给你想要的输出一个更精确的规格吗?
'{:08d}.格式(int(a_dict['a_float']*10**8))
->
'0113200'
我可以进行后期处理,但我正在将多个字典输入传递到字符串中。我将更新问题,以更好地表示复杂性。