我一直在寻找更简单的方法来完成这个任务,但我不确定要使用什么搜索参数。我有一个浮点数,想要将其四舍五入,转换为字符串,然后在字符串上指定自定义格式。我已经阅读了.format文档,但无法确定是否可以使用普通字符串格式化来完成此操作。
我想要的输出只是一个普通的字符串,每三个字符之间有空格,除了最后几个字符,在末尾前四个字符处有一个空格。
例如,我制作了这个复杂的函数,以一种低效的方式实现了我想要的功能:
我想要的输出只是一个普通的字符串,每三个字符之间有空格,除了最后几个字符,在末尾前四个字符处有一个空格。
例如,我制作了这个复杂的函数,以一种低效的方式实现了我想要的功能:
def my_formatter(value):
final = []
# round float and convert to list of strings of individual chars
c = [i for i in '{:.0f}'.format(value)]
if len(c) > 3:
final.append(''.join(c[-4:]))
c = c[:-4]
else:
return ''.join(c)
for i in range(0, len(c) // 3 + 1, 1):
if len(c) > 2:
final.insert(0, ''.join(c[-3:]))
c = c[:-3]
elif len(c) > 0:
final.insert(0, ''.join(c))
return(' '.join(final))
e.g.
>>> my_formatter(123456789.12)
>>> '12 345 6789'
>>> my_formatter(12345678912.34)
>>> '1 234 567 8912'
我希望您能指导如何以更简单/更高效的方式完成此操作。