Python 3.x Python打印具有给定位数的浮点
我在Python中有一些浮点值。我想把它们打印出来,使它们具有相同的位数(整数和小数部分之和) 例如,考虑到这两个数字:Python 3.x Python打印具有给定位数的浮点,python-3.x,printing,floating-point,formatting,Python 3.x,Printing,Floating Point,Formatting,我在Python中有一些浮点值。我想把它们打印出来,使它们具有相同的位数(整数和小数部分之和) 例如,考虑到这两个数字: a = 12.123456 b = 123.1234567 我想打印它们的值,格式如下: 12.1234 123.123 使它们具有相同的长度 一个简单的方法是: if (val>100): print("%0.3f" % val) else: print("%0.4f" % val) 在python中,是否有一种更智能的方法同时控制整数和十进制数
a = 12.123456
b = 123.1234567
我想打印它们的值,格式如下:
12.1234
123.123
使它们具有相同的长度
一个简单的方法是:
if (val>100):
print("%0.3f" % val)
else:
print("%0.4f" % val)
在python中,是否有一种更智能的方法同时控制整数和十进制数字的数量,从而使生成的字符串保持不变?您可以尝试这样做
print('{:.6}'.format(val))
整数和小数的格式化方法为
>>> '{:06.2f}'.format(3.141592653589793)
'003.14'
前面的部分(6
此处)表示填充的总长度(包括
),而
后面的部分(2f
此处)表示小数点后的数字。
希望能有帮助。签出。好的,我考虑过这个解决方案,它基本上是一个解决方案:
LIM = 7;
a = 12.123456
b = 123.1234567
print(str(a)[:LIM])
print(str(b)[:LIM])
实际上,它在大多数情况下都有效,但如果整数部分为0,则不起作用:例如,它在0.678923156的情况下不起作用,因为它在不计算0整数部分的情况下打印6个小数。它看起来有点吓人,但在开始时为零的情况下它会起作用
print(“{.6}”if int(val)else“{.5}”).format(val))
{.5}-如果整数部分等于零,则将应用此选项,在其他情况下{.6}