gpt4 book ai didi

python - 使用0s填充在Python中格式化 float

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:53 26 4
gpt4 key购买 nike

64 位 Ubuntu 12.04 上的 Python,版本 2.7.3

我有一个介于 0 和 99.99 之间的 float 。我需要将其打印为以下格式的字符串:

WW_DD

其中 WW 是整数,DD 是四舍五入的小数点后 2 位数字。该字符串需要前后补0,以确保格式始终相同。

一些例子:

0.1    -->  00_10
1.278 --> 01_28
59.0 --> 59_00

我做了以下事情:

def getFormattedHeight(height):

#Returns the string as: XX_XX For example: 01_25
heightWhole = math.trunc( round(height, 2) )
heightDec = math.trunc( (round(height - heightWhole, 2))*100 )
return "{:0>2d}".format(heightWhole) + "_" + "{:0>2d}".format(heightDec)

除数字 0.29 外,它工作正常,格式为 00_28。

有人能找到适用于 0 到 99.99 之间所有数字的解决方案吗?

最佳答案

用填充零格式化 float :

numbers = [0.0, 0.1, 0.29, 1.278, 59.0, 99.9]
for x in numbers:
print("{:05.2f}".format(x).replace(".","_"))

打印:

00_00
00_10
00_29
01_28
59_00
99_90

:05 表示“使用五位补零”,.2f 表示“强制显示小数点后 2 位数字”。有关格式化数字的背景,请参阅:https://pyformat.info/#number .

小贴士:How to format a floating number to fixed width in Python

关于python - 使用0s填充在Python中格式化 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35089126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com