Python打印具有给定位数的浮点数

Fra*_*Boi 6 printing floating-point formatting python-3.x

我在 Python 中有一些浮点值。我想打印它们,以便它们具有相同的位数(整数和小数部分的总和)

例如考虑两个数字:

a = 12.123456
b = 123.1234567
Run Code Online (Sandbox Code Playgroud)

我想打印它们的值,格式如下:

12.1234
123.123
Run Code Online (Sandbox Code Playgroud)

使它们具有相同的长度。

一种简单的方法如下:

if (val>100):
    print("%0.3f" % val)
else:
    print("%0.4f" % val)
Run Code Online (Sandbox Code Playgroud)

有没有一种更聪明的方法可以在Python中同时控制整数和小数位数,以使结果字符串恒定?

小智 6

整数和小数的格式化方法是

>>> '{:06.2f}'.format(3.141592653589793)
'003.14'
Run Code Online (Sandbox Code Playgroud)

.(此处)之前的部分6表示填充的总长度(包括) ..(2f这里)之后的部分表示小数点后的数字。希望能帮助到你。查看链接


Fra*_*Boi 1

好吧,我想到了这个解决方案,它基本上是正数的解决方法:

LIM = 7;
a = 12.123456
b = 123.1234567
print(str(a)[:LIM])
print(str(b)[:LIM])
Run Code Online (Sandbox Code Playgroud)