如何获得特定的位数?python

如何获得特定的位数?python,python,floating-point,Python,Floating Point,我该如何格式化我的浮点数字,以便无论方向如何,始终有7个数字 该值可以是以下任意值,但我始终希望7如下所示 0.0054233 1234567 123.1224 1.992923 我现在拥有的部分是 return "%.7f" % fd 我如何调整它以获得所需的输出?或者把我和类似的东西联系起来,我可以试着读一下….> 依我看,这取决于节目的背景。。。如果您只希望右边的数字为6位小数,请使用: "{:.6f}".format(whatevervar) 在其他上下文中,可以将其转换为字符串,

我该如何格式化我的浮点数字,以便无论方向如何,始终有7个数字

该值可以是以下任意值,但我始终希望7如下所示

0.0054233
1234567
123.1224
1.992923
我现在拥有的部分是

return "%.7f" % fd

我如何调整它以获得所需的输出?或者把我和类似的东西联系起来,我可以试着读一下….>

依我看,这取决于节目的背景。。。如果您只希望右边的数字为6位小数,请使用:

"{:.6f}".format(whatevervar)
在其他上下文中,可以将其转换为字符串,并使用
len()
计算位数

希望这有帮助


编辑:看到您的评论,我建议使用条件来定义您要做的事情。当数字没有小数时(请检查此线程以了解如何操作:)保持原样,当数字有小数时,请使用我上面发布的代码将其四舍五入。

我认为,这取决于程序的上下文。。。如果您只希望右边的数字为6位小数,请使用:

"{:.6f}".format(whatevervar)
在其他上下文中,可以将其转换为字符串,并使用
len()
计算位数

希望这有帮助


编辑:看到您的评论,我建议使用条件来定义您要做的事情。当数字没有小数时(请检查此线程以了解如何操作:)保持原样,当数字有小数时,请使用我在上面发布的代码将其四舍五入。

如果这对您有效,请尝试:

n = 123.456789
decimals = 7 - len(str(int(n)))
print('{:.{prec}f}'.format(n, prec=decimals))
#=> 123.4568

缺点是它会被舍入。

如果这对您有效,请尝试:

n = 123.456789
decimals = 7 - len(str(int(n)))
print('{:.{prec}f}'.format(n, prec=decimals))
#=> 123.4568

缺点是它会四舍五入。

对于编号
1
,您是否希望
0000001
?或者
1.000000
是的,因此您正在编写的程序的可靠性。但是您要求一个数字始终有7位数字?除非我读错了…对,对不起,那么我更喜欢1.000000作为数字
1
,你想要
0000001
?或者
1.000000
是的,因此您正在编写的程序的可靠性。但是您要求一个数字始终有7位数字?除非我读错了…对,对不起,那么我更喜欢100万,如果它凑齐了也没关系。非常感谢。如果它结束了也没关系。非常感谢。谢谢,我去看看!谢谢,我去看看!