python string formatting fixed width
我想把一堆浮点数放到一个固定宽度的表中。也就是说,我希望最多使用12个字符。我需要至少使用10位小数(如果可用);但是,如果10位小数使其占用超过12个字符,则四舍五入。我最初的想法是尝试这样的东西
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # I only want 12 characters used total num1 = 0.04154721841 num2 = 10.04154721841 # not what I want print"{:<12.11g}".format((num1)) # what I want print"{:<12.10f}".format((num1)) # not what I want print"{:<12.10f}".format((num2)) # what I want print"{:<12.11g}".format((num2)) |
必须有一种方法来实现这一点,而不需要编写一个函数来检查每个数字,并根据上述条件给出格式设置。我错过了什么?
我不确定这是您要找的,因为它不是完全用格式字符串完成的,但是,当事情变得太长时,您可以使用字符串切片来去掉尾随字符:
1 2 3 4 5 6 7 | num1 = 0.04154721841 num2 = 10.04154721841 num3 = 1002.04154721841 print"{0:<12.11g}".format(num1)[:12] print"{0:<12.11g}".format(num2)[:12] print"{0:<12.11g}".format(num3)[:12] |
输出:
1 2 3 | 0.0415472184 10.041547218 1002.0415472 |
除此之外,我想说你应该只写一个函数,尽管我不是