Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python打印具有给定位数的浮点_Python 3.x_Printing_Floating Point_Formatting - Fatal编程技术网

Python 3.x 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中,是否有一种更智能的方法同时控制整数和十进制数

我在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}