在 Python 中将浮点数格式化为字符串
-
使用格式规范和
format()
方法将浮点数格式化为固定宽度 - 将列表中的浮点数格式化为固定宽度
-
使用 Python 中的
%
运算符格式化浮点数以固定宽度 -
使用 Python 中的
round()
函数将浮点数格式化为固定宽度
本文将介绍一些在 Python 中将浮点数格式化为固定宽度的方法。
使用格式规范和 format()
方法将浮点数格式化为固定宽度
在这里,我们将通过格式规范使用正常的格式化过程来固定浮点数的宽度。
我们将创建一个变量 num
并为其分配一个浮点数。然后,我们将以我们需要的格式打印浮点数。我们将使用 format()
函数来获得我们的结果。
示例代码:
#python 3.x
num = 0.02893574
print ("{:.4f}".format(num))
输出:
0.0289
此处,.4f
称为格式规范,表示输出应仅显示小数点后四位。如果我们改用 .5f
,我们将在小数点后得到最多五位数字。放置冒号 :
之前的空字符串,以便提供给 format()
函数的参数占据该位置。在上面的程序中,我们提供的参数是 num
。因此,我们在 num
中的任何值都将传递给 :
之前的空字符串并进行相应的格式化。
在 python 3.6 中,我们还可以使用 f'{}'
来获得相同的输出:
#python 3.x
num = 0.02893574
print (f'{num:.4f}')
输出:
0.0289
将列表中的浮点数格式化为固定宽度
我们使用类似的语法将浮点数的宽度固定为小数点后的特定数字。
首先,我们将创建一个包含多个浮点数的列表。然后,我们将使用 for 循环从列表中获取每个项目并相应地对其进行格式化。我们将使用变量 numbers
来表示列表中的数字。我们将列表中的浮点数以小数点后的固定位数一一打印出来。
示例代码:
#python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print("{:.3f}".format(numbers))
输出:
18.292
52.452
999.121
在上面的代码中,列表中的每个数字都在 for
循环中一个一个地发送。列表的第一个元素,即 list[0]
,被分配给变量 numbers
,并打印其格式化值,即 18.293
。发生这种情况是因为我们执行了 .3f
,它表示小数点后最多三位的数字。类似地,第二个元素 list[1]
和第三个 list[2]
也作为变量 numbers
传递给循环并相应地打印出来。
这个程序会一直运行,直到列表中的所有元素都被执行。
使用 f'{}'
:
示例代码:
下面的列表包含与上面的程序相同的项目。在此示例中,我们将使用 f'{}'
而不是 format()
函数。
#python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print(f'{numbers:9.3f}')
输出:
18.292
52.452
999.121
我们可以看到,当我们使用 f'{}'
获得输出时。我们还以对齐的方式获得了所需的输出。出于同样的原因,如果我们想让小数点后的浮动数字对齐,通常最好使用 f'{}'
。
使用 Python 中的 %
运算符格式化浮点数以固定宽度
我们还可以使用 %v
运算符为浮点数设置固定宽度。该代码可能类似于 C 编程中的 printf()
函数。
我们将为变量 num
分配一个浮点数,并用十进制数字打印 num
的值,直到固定宽度。请注意,在将 num
的值传递给带有格式说明符 %.4f
的打印语句时,我们使用了 %num
。在 num
之前缺少 %
将是一个语法错误。
示例代码:
#python 3.x
num = 0.02893574
print ('%.4f'%num)
输出:
0.0289
在这里,%num
的使用允许我们在没有任何函数或字符串格式的情况下打印所需的值。
使用 Python 中的 round()
函数将浮点数格式化为固定宽度
我们还可以使用 round()
函数来固定小数点后的位数。此功能限制输入数字小数点后的位数。如果数字大于值 5
,它还会将限制设置为其上整数值的数字四舍五入。
让我们取一个浮点数并将其分配给变量 num
。当我们打印时,我们将使用 round()
函数来限制小数点后的位数。
示例代码:
#python 3.x
num = 2.37682
print(round(num,3))
输出:
2.377
round 函数的语法是 round(number, digits)
。这里参数 number
是强制性的,而参数 digits
是可选的。number
也可以作为一个变量。如果没有传递给参数 digits
,则只采用 number
的整数部分作为结果。
在上面的程序中,我们将值 2.37682
传递给第一个参数 num
,并将其四舍五入到小数点后 3 位,因为我们将值 3
传递给了 round()
中的第二个参数方法。