如何利用Python将浮点数转换为字符串

4,936 阅读3分钟

将浮点数转换为字符串的最Pythonic的方法是将浮点数传入内置的 [str()](https://blog.finxter.com/python-str-function/)函数。例如,str(1.23) 将浮点数1.23 转换为字符串'1.23'

这里有一个最小的例子。

my_float = 1.23
my_string = str(my_float)

print(my_string)
# '1.23'

Python Float to String Precision (Decimals)

要在逗号后设置小数精度,可以使用Python 3中的f-string格式化功能。例如,表达式f'{x:.3f}' ,将浮动变量x 转换为精度为3的浮动。

下面是一个例子。

my_float = 1.23456789
my_string = f'{my_float:.3f}'

print(my_string)
# '1.235'

注意,浮动值1.23456789被四舍五入为1.235,小数点后有三位数字。

Python Float to String Format

在Python中把浮点数转换为字符串时,要设置逗号后的精度,也可以使用string [format()](https://blog.finxter.com/python-string-format/)方法。例如,表达式'{:.2f}'.format(x) 将浮点变量x 转换为精度为 2 的浮点,如3.131.23

这里有一个例子。

my_float = 1.23456789
my_string = '{:.3f}'.format(my_float)

print(my_string)
# '1.235'

Python Float to String 两(2)个小数位

在将浮点数转换为字符串时,要将逗号后的精度设置为两位小数,可以使用Python的f-string格式化功能。例如,表达式f'{x:.2f}' 将浮动变量x 转换为精度为二 ("2") 的浮动变量,如1.233.14

下面是一个例子。

my_float = 1.23456789
my_string = f'{my_float:.2f}'

print(my_string)
# '1.23'

注意,在这种情况下,剩余的数字被四舍五入到下一个整数位。然而,在另一种情况下,这种确切的方法会向上舍入。

my_float = 1.239
my_string = f'{my_float:.2f}'

print(my_string)
# '1.24'

Python Float to String Round

  • 如果你在一个给定的浮点数上使用str() 函数,Python不进行四舍五入,例如,str(1.24999) 产生'1.24999'
  • 如果你使用f'{my_float:.2f}' 表达式,Python 将浮点数转换为四舍五入后的浮点数的字符串表示,其数字为n

下面的例子显示了这两种情况。

my_float = 1.24999999

# 1: NO ROUNDING
str(my_float)
'1.24999999'

# 2: ROUNDING
f'{my_float:.2f}'
'1.25'

Python 将浮点数转为字符串,没有.0

如果你想把一个浮点数如1.0,2.0, 或3.0 转换为没有小数点后缀的字符串.0 ,首先把浮点数传到 [int()](https://blog.finxter.com/python-int-function/)函数,并将得到的整数传给str() 函数。例如,表达式str(int(3.0)) 将浮点数转换为字符串'3'

下面是一个最小的例子。

my_float = 3.0
my_string = str(int(my_float))
# '3'

Python Float to String without Decimal

如果你想将浮点数转换为没有小数点后缀的字符串,请将其传递给 [int()](https://blog.finxter.com/python-int-function/)函数,并将得到的整数传入str() 函数。例如,表达式str(int(3.599)) 将浮点数转换为字符串'3'

这里是一个最小的例子。

my_float = 3.599
my_string = str(int(my_float))
# '3'

带逗号的Python浮点数转为字符串

要将浮点数转换成带有逗号而不是小数点的字符串,即'3,599' ,而不是'3.599' ,应用两个步骤。

  • 通过使用str(my_float) 函数将浮点数转换为带有小数点的字符串。
  • 通过使用函数将小数点字符串转换为逗号表示。 [string.replace('.', ',')](https://blog.finxter.com/python-string-replace-2/)函数。

这里有一个例子。

my_float = 3.599

my_string = str(my_float)
# '3.599'

new_string = my_string.replace('.', ',')
# '3,599'

Python浮点数到字符串的科学符号

要将一个浮点数转换为带有科学符号的Python字符串,对一个浮点数变量my_float ,使用f-string表达式f'{my_float:.2E}'

这里有一个例子。

my_float = 999999999999999999.999999999999

my_string = f'{my_float:.2E}'
print(my_string)
# 1.00E+18