如何使用%格式打印float变量?

时间:2019-03-07 16:33:17

标签: python

我在Windows上使用Python 3.7.1。 当我使用%格式打印float变量时。仅打印自然部分。 这是一个示例:

result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %d letter(s) per words." % result_2

print(result_2)
print(statement_2a)

这将产生以下结果:

4.523529411764706
Your text contains an average length of 4 letter(s) per words.

但是我真正想要的是:

Your text contains an average length of 4.5235 letter(s) per words.
  1. 如何防止print()函数实际上删除十进制数字?
  2. 如何将数字四舍五入到四位数

谢谢!

4 个答案:

答案 0 :(得分:2)

当您尝试打印浮点数时,请使用%f代替%d。 此代码会将数字打印到小数点后4位:

result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %.4f letter(s) per words." % result_2

print(result_2)
print(statement_2a)

答案 1 :(得分:0)

%格式更好的选择是使用.format

result_2 = 4.523529411764706
print(result_2)
print("Your text contains an average length of {} letter(s) per words.".format(result_2))

对于四舍五入,请使用round

result_2 = 4.523529411764706
print(result_2)
print("Your text contains an average length of {} letter(s) per words.".format(round(result_2,4)))

但是,如果您对%格式感到满意,则可以使用%s

打印整数
result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %s letter(s) per words." % result_2
print(result_2)
print(statement_2a)

要舍入到4位数字,请使用%1.4f

result_2 = 4.523529411764706
statement_2a = "Your text contains an average length of %1.4f letter(s) per words." % result_2
print(result_2)
print(statement_2a)

答案 2 :(得分:0)

您正在使用“旧式”格式,并使用%d作为占位符。这会将您的数字表示为不含小数的十进制数字。如果要显示浮点数,则占位符就是%f

如果要使用变量的字符串表示形式,也可以始终仅使用%s。但是,由于您使用的是python 3.7,因此还有一些更现代的方法。

  • “旧式”格式:"%s" % var
  • 使用format()进行“新型”格式化:"{}".format(var)(有关详细信息,请阅读python格式化程序)
  • f字符串,基本上是基于format()的字符串插值的语法糖。您以f为前缀,并将变量放在字符串文字本身中:f"{var}"

答案 3 :(得分:0)

有几种方法可以评估表达式并将其打印为python中的字符串。

已经有了一些好的答案,但是这里有一些明确的示例和文档链接。

格式化的字符串文字(f字符串)

f-strings允许您输入在运行时求值的表达式。在f字符串中,表达式用大括号括起来。

例如:

x = 42.222222222

print(f'My value is: {x}')

打印My value is: 42.222222222

并指定格式:

x = 42.222222222

print(f'My value is: {x:.2f}')

打印My value is: 42.22

Str格式化方法

字符串具有内置的.format()方法,您可以在其中使用大括号指定替换字段。

例如:

x = 42.222222222

print('My value is: {}'.format(x))

打印My value is: 42.222222222

并使用字符串格式:

x = 42.222222222

print('My value is: {:.2f}'.format(x))

打印My value is: 42.22

字符串格式运算符

String formatting operator

例如:

x = 42.222222222

print('My value is: %' % x)

打印My value is: 42.222222222

并使用字符串格式:

x = 42.222222222

print('My value is: %.2f' % x)

打印My value is: 42.22

有关不同方法的一些定性描述,请参见@Felk答案。