在Python中使用0填充格式化浮点数字
64位Ubuntu 12.04上的Python版本2.7.3 我有一个介于0和99.99之间的浮点数。 我需要以以下格式将其打印为字符串: WW_DD 其中WW为整位数,DD为四舍五入,小数点后2位。 字符串需要前后填充0,以便始终保持相同的格式 一些例子:在Python中使用0填充格式化浮点数字,python,floating-point,Python,Floating Point,64位Ubuntu 12.04上的Python版本2.7.3 我有一个介于0和99.99之间的浮点数。 我需要以以下格式将其打印为字符串: WW_DD 其中WW为整位数,DD为四舍五入,小数点后2位。 字符串需要前后填充0,以便始终保持相同的格式 一些例子: 0.1 --> 00_10 1.278 --> 01_28 59.0 --> 59_00 我做了以下工作: def getFormattedHeight(height): #Returns t
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之间所有数字的解决方案吗?试试这个(在Python 2.7.10中测试):
有关格式化数字的背景信息,请参阅:
帽子提示:如果您按以下方式计算高度Dec,则原始解决方案有效:
heightDec = int(round((height - heightWhole)*100, 0))
首先乘以100,然后四舍五入并转换为整数。Simple。优雅的很好的解决方案。
heightDec = int(round((height - heightWhole)*100, 0))