在小数分隔符之前格式化python中的float

时间:2011-09-21 09:09:00

标签: python floating-point formatting tabular

我按如下方式格式化浮点数:

logFile.write("Loadcase: %6i %2i %4i %2.2f %2.2f %4f + %4f -> " %(i, freq, amp, cutoff, end_time, penalty_inc, stab_inc))

,结果如下:

Loadcase:   5001  1   50 19.00 20.00 0.000000 + 0.000000 -> 0.495386 (ok)
Loadcase:   5002  2   50 9.50 10.00 0.000000 + 0.000000 -> 0.255045 (ok)
Loadcase:   5003  3   50 6.33 6.67 0.000000 + 0.000000 -> 0.151464 (ok)
Loadcase:   5005  5   50 3.80 4.00 0.000000 + 0.000000 -> 0.116979 (ok)
Loadcase:   5010 10   50 1.90 2.00 0.000000 + 0.000000 -> 0.081181 (ok)

我只是希望浮动对齐,并在必要时插入一些空格。我真的基本上希望桌子很好地对齐。 我对编写%2.2f的猜测似乎被忽略了。

由于技术原因,我不能使用numpy。

3 个答案:

答案 0 :(得分:7)

你误解了%2.2f的含义。这意味着“给浮动2列总计,并在小数点后显示2个位置”。也许你想要%5.2f

答案 1 :(得分:2)

语法是

% fieldwidth . precision conversiontype

因此,如果您想留一些空格,并显示2位小数,请尝试

%8.2f

有关完整概述,请参阅the Python documentation

答案 2 :(得分:2)

格式字符串"%4.2f"表示:格式在小数点后有2位数字,并且至少使用4个字符表示完整字符串。所以

 "%4.2f" % 1.1   -->  " 1.1"
 "%4.2f" % 11.1  -->  "11.1"
 "%4.2f" % 111.1 -->  "111.1"

在您的情况下,您可以将4设置为足够高。