繁体   English   中英

在小数点分隔符之前也在python中格式化浮点数

[英]Formatting float in python also before the decimal separator

我正在格式化浮点数,如下所示:

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。

您误解了%2.2f含义。 这表示“给浮点数总共2列,并在小数点后显示2个位置”。 也许您想要%5.2f代替。

语法是

% fieldwidth . precision conversiontype

因此,在您要留一些空间并显示2个小数的情况下,请尝试

%8.2f

有关完整概述,请参见Python文档

格式字符串"%4.2f"说:在小数点后加2位数字的格式, 完整字符串至少使用4个字符。 所以

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

在您的情况下,您已将上述4设置为足够高。

我正在使用 pycharm 专业版

这是我从摄氏度转换华氏度的代码

将摄氏度转换为华氏度的函数

def temperature():
print("Celsius_Degree       Fahrenheit_Degree")
print("==============       =================")
for Celsius in range(0, 101, 1):
    fahrenheit = (9/5) * Celsius + 32
    print("{:>5.1f} C               {:>5.1f} F".format(Celsius, fahrenheit))

温度()

因此,当我将 :>5.1f 更改为 %5.1f 时,为什么会出现 KeyError: '%5'

我已经添加了错误的2输出截图以及没有错误的截图,请解释; 我很困惑我应该使用哪个 %5.1f 或 :>5.1f写入 %5.1f 时出错 写入时没有错误 :>5.1f

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM