Python格式浮点数到固定总宽度

Python格式浮点数到固定总宽度,python,floating-point,format,Python,Floating Point,Format,如何设置浮点数的格式,使其总位数始终相同 例如,5位数字: .123456 1.2 12.34 将成为 0.1234 1.2000 12.340 我已经找到了限制精度、填充零等的解决方案,但没有为整数(不仅仅是左侧或右侧)提供固定宽度的解决方案。正如我在评论中建议的那样,您可以从将浮点数转换为字符串对象开始,然后使用ljust()str类和字符串切片的方法 具体如下: #定义一个返回所需输出的函数 格式f=lambda x:str(x+.0).ljust(6,'0')[:6] #让我们以您提

如何设置浮点数的格式,使其总位数始终相同

例如,5位数字:

.123456
1.2
12.34
将成为

0.1234
1.2000
12.340

我已经找到了限制精度、填充零等的解决方案,但没有为整数(不仅仅是左侧或右侧)提供固定宽度的解决方案。

正如我在评论中建议的那样,您可以从将浮点数转换为字符串对象开始,然后使用
ljust()
str
类和字符串切片的方法

具体如下:

#定义一个返回所需输出的函数
格式f=lambda x:str(x+.0).ljust(6,'0')[:6]
#让我们以您提供的浮点数为例进行迭代
对于123456、1.2、12.34中的浮子:
#您可以调用下面一行中的函数
打印(格式f(浮动)
输出

0.1234
1.2000
12.340

正如我在注释中建议的那样,您可以首先将浮点数转换为字符串对象,然后使用
str
类的
ljust()
方法和字符串切片

具体如下:

#定义一个返回所需输出的函数
格式f=lambda x:str(x+.0).ljust(6,'0')[:6]
#让我们以您提供的浮点数为例进行迭代
对于123456、1.2、12.34中的浮子:
#您可以调用下面一行中的函数
打印(格式f(浮动)
输出

0.1234
1.2000
12.340

为了澄清你的问题:让我们假设你的固定宽度是5,数字是67881234.61。你希望得到什么?@混血王子对于我的申请,我知道数字永远不会超过1000,也就是说,至少会有一个小数位。我认为他们不应该结束你的问题,因为我认为你的要求与他们指出的重复问题略有不同。无论如何,这里有一种方法:->
str(你的浮点数)。ljust(6,'0')[:6]
@revliscano我同意,另一个问题没有解决添加尾随零的需要。如果您很快,您可以添加您建议的解决方案作为答案。@MatthewSalvatoreViglione您是否真正希望0.123456打印为0.1234,而不是0.1235(因此您希望截断为零,而不是默认四舍五入为最近值)?为了澄清您的问题:假设您的固定宽度为5,数字为67881234.61。你希望得到什么?@混血王子对于我的申请,我知道数字永远不会超过1000,也就是说,至少会有一个小数位。我认为他们不应该结束你的问题,因为我认为你的要求与他们指出的重复问题略有不同。无论如何,这里有一种方法:->
str(你的浮点数)。ljust(6,'0')[:6]
@revliscano我同意,另一个问题没有解决添加尾随零的需要。如果您很快,您可以添加建议的解决方案作为答案。@MatthewSalvatoreViglione您是否真正希望0.123456打印为0.1234,而不是0.1235(因此您希望截断为零,而不是默认四舍五入为最近值)?不适用于整数,但这似乎不是一个要求。我通过首先将输入转换为一个float:
str(float(x)).ljust(6,0”)[:6]
来修复它,使其也适用于整数。你说得对。现在更新答案以接受整数@Markransom不适用于整数,但这似乎不是必需的。我通过首先将输入转换为浮点:
str(float(x)).ljust(6,“0”)[:6]
来修复它,使其也适用于整数。你说得对。现在更新答案以接受整数@马克赎金