【问题标题】:Formatting float in python also before the decimal separator在小数点分隔符之前也在python中格式化浮点数
【发布时间】:2011-11-21 18:35:31
【问题描述】:

我将浮点数格式化如下:

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。

【问题讨论】:

    标签: python floating-point formatting tabular


    【解决方案1】:

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

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

    在您的情况下,您将上面的4 设置得足够高。

    【讨论】:

      【解决方案2】:

      语法是

      % fieldwidth . precision conversiontype
      

      所以在你想留一些空间,并显示 2 位小数,试试

      %8.2f
      

      请参阅the Python documentation 了解完整概述。

      【讨论】:

        【解决方案3】:

        您误解了%2.2f 的含义。它的意思是“总共给浮点数 2 列,并在小数点之后显示 2 个位置”。也许你想要%5.2f

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-05
          • 2016-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-08
          相关资源
          最近更新 更多