0

目的是打印带有TAB字符的表格。出于这个原因,我需要将所有字段限制为 < 8 个字符。

我尝试了各种格式字符串,没有一个工作

def test(format_string):
    print("\tFormat string is '%s'" % format_string)
    print(format_string % 0.12345678)
    print(format_string % 0.00012345678)
    print(format_string % 12.3456789)

test("\t%5g")
test("\t%5f")
test("\t%.5g")
test("\t%.5f")
test("\t%5.5g")
test("\t%5.5f")

我希望得到的是:

0.12346
0.00012
12.3457

结果(它们都不总是产生 <8 个字符):

Format string is '  %5g'
0.123457
0.000123457
12.3457
Format string is '  %5f'
0.123457
0.000123
12.345679
Format string is '  %.5g'
0.12346
0.00012346
12.346
Format string is '  %.5f'
0.12346
0.00012
12.34568
Format string is '  %5.5g'
0.12346
0.00012346
12.346
Format string is '  %5.5f'
0.12346
0.00012
12.34568
4

1 回答 1

0

似乎唯一的方法是在格式化之前修剪数字:

>>> "%.6g" % round(0.12345678,5)
'0.12346'
>>> "%.6g" % round(12.3456789,5)
'12.3457'
>>> "%.6g" % round(1234.56789,5)
'1234.57'
于 2013-09-03T09:16:01.567 回答