如何将浮点数格式化为固定宽度,具体要求如下:
例如:
% formatter something like '{:06}' numbers = [23.23, 0.123334987, 1, 4.223, 9887.2] for number in numbers: print formatter.format(number)
输出是这样的
23.2300 0.1233 1.0000 4.2230 9887.2000
numbers = [23.23, 0.1233, 1.0, 4.223, 9887.2] for x in numbers: print("{:10.4f}".format(x))
打印
花括号内的格式说明符跟在Python格式字符串语法之后。具体来说,在本例中,它由以下部分组成:
x
10.4f
f
10
4
在python3中,以下工作:
>>> v=10.4 >>> print('% 6.2f' % v) 10.40 >>> print('% 12.1f' % v) 10.4 >>> print('%012.1f' % v) 0000000010.4
参见Python 3。x 格式字符串语法:
IDLE 3.5.1 numbers = ['23.23', '.1233', '1', '4.223', '9887.2'] for x in numbers: print('{0: >#016.4f}'. format(float(x))) 23.2300 0.1233 1.0000 4.2230 9887.2000
在Python 3中。
GPA = 2.5 print(" %6.1f " % GPA)
6.1f表示点号后1位数字,如果在点号后打印2位数字,则应该只打印%6.2f,以便在点号后打印%6.3f 3位数字。
6.1f
%6.2f
%6.3f
这个问题已经回答了几年了,但从Python 3.6开始 (PEP498)你可以使用新的f-strings:
f-strings
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2] for number in numbers: print(f'{number:9.4f}')
打印:
你也可以留下零。例如,如果你想让number有9个字符的长度,左边用0填充,使用:
number
print('{:09.3f}'.format(number))
因此,如果number = 4.656,则输出为:00004.656
number = 4.656
00004.656
对于你的例子,输出是这样的:
numbers = [23.2300, 0.1233, 1.0000, 4.2230, 9887.2000] for x in numbers: print('{:010.4f}'.format(x))
00023.2300 00000.1233 00001.0000 00004.2230 09887.2000
这可能很有用的一个示例是,当您希望按字母顺序正确地列出文件名时。我注意到在一些linux系统中,数字是:1,10,11,..2,20,21,…
因此,如果您希望在文件名中强制执行必要的数字顺序,则需要在左侧填充适当数量的零。
对于数组,我需要一些类似的东西。这帮助了我
some_array_rounded=np.around(some_array, 5)
这将打印76.66:
76.66
print("Number: ", f"{76.663254: .2f}")
我试过了所有的方法,比如
pd.options.display.float_format = '{:.4f}'.format
pd.set_option('display.float_format', str)
pd.set_option('display.float_format', lambda x: f'%.{len(str(x%1))-2}f' % x)
pd.set_option('display.float_format', lambda x: '%.3f' % x)
但对我来说什么都不管用。
因此,当将变量/值(var1)分配给变量(例如num1)时,我使用round(val,5)
var1
num1
round(val,5)
num1 = round(var1,5)
这是一个粗糙的方法,因为你必须在每次赋值中使用这个循环函数。但这可以确保你控制事情的发生,并得到你想要的。
使用f-string文字:
>>> number = 12.34 >>> print(f"{number}") 12.34 >>> print(f"{number:10f}") 12.340000 >>> print(f"{number:10.4f}") 12.3400
冒号:后面的10.4f是格式规范,其中10是整数(包括空格)的字符宽度,第二个数字4是小数点后的位数,f代表浮点数。
:
也可以使用变量,而不是硬编码宽度和小数点后的位数:
>>> number = 12.34 >>> width = 10 >>> decimals = 4 >>> print(f"{number:{width}.{decimals}f}") 12.3400