在Python中显示带有两个小数位的浮点数

Mar*_*ios 107 python string floating-point programming-languages

我有一个函数采用浮点数参数(通常是带有一个有效数字的整数或小数),我需要输出一个带有两个小数位(5 - > 5.00,5.5 - > 5.50等)的字符串中的值.我怎么能用Python做到这一点?

Dar*_*mas 235

由于这篇文章可能会在这里发表一段时间,让我们也指出python 3语法:

"{:.2f}".format(5)
Run Code Online (Sandbox Code Playgroud)

  • 如果你不想使用数字占位符:`"{{..2f}".format(5)` (27认同)
  • 此语法也适用于Python 2.7(至少). (7认同)
  • 仅出于完整性考虑,如果小数是可变的,例如`d = 3`,则语法为“” {:。{} f}“。format(5,d)` (3认同)

NPE*_*NPE 134

您可以使用字符串格式化运算符:

>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'
Run Code Online (Sandbox Code Playgroud)

运算符的结果是一个字符串,因此您可以将其存储在变量,打印等中.


too*_*ain 43

f字符串格式:

这是在Python 3.6新-字符串放在引号像往常一样,除了前面f'...的你会以同样的方式r'...为原始字符串.然后你放置你想要放在你的字符串,变量,数字,内部大括号中的任何东西f'some string text with a {variable} or {number} within that text'- 并且Python评估与之前的字符串格式化方法一样,除了这个方法更具可读性.

>>>a = 3.141592
>>>print(f'My number is {a:.2f} - look at the nice rounding!')

My number is 3.14 - look at the nice rounding!
Run Code Online (Sandbox Code Playgroud)

您可以在此示例中看到,我们使用与先前字符串格式化方法类似的方式格式化小数位.

NB a可以是数字,变量,甚至是表达式,例如f'{3*my_func(3.14):02f}'.

接下来,使用新代码f字符串应优先于常见的%s或str.format()方法,因为f字符串要快得多.


deb*_*e4u 14

字符串格式:

a = 6.789809823
print('%.2f' %a)
Run Code Online (Sandbox Code Playgroud)

或者

print ("{0:.2f}".format(a)) 
Run Code Online (Sandbox Code Playgroud)

可以使用轮函数:

print(round(a, 2))
Run Code Online (Sandbox Code Playgroud)

round() 的好处在于,我们可以将此结果存储到另一个变量中,然后将其用于其他目的。

b = round(a, 2)
print(b)
Run Code Online (Sandbox Code Playgroud)

使用 round() - 主要用于显示目的。

  • 对“圆形”投反对票。它不应仅用于*显示*目的。 (5认同)
  • @wim我尊重你的评论,但这个答案只是为了满足某人的要求。 (2认同)
  • @debaonline4u wim 是对的。`round(5.0001, 2)` -> `5.0`,而不是 `'5.00'` (2认同)

小智 7

在Python 3中

print(f"{number:.2f}")
Run Code Online (Sandbox Code Playgroud)

一种更短的格式化方法。


bra*_*ers 6

字符串格式:

print "%.2f" % 5
Run Code Online (Sandbox Code Playgroud)


kev*_*pie 5

使用python字符串格式。

>>> "%0.2f" % 3
'3.00'
Run Code Online (Sandbox Code Playgroud)


Jos*_*osh 5

如果您确实想更改数字本身而不是仅以不同方式显示它,请使用 format()

将其格式化为 2 个小数位:

format(value, '.2f')
Run Code Online (Sandbox Code Playgroud)

例子:

>>> format(5.00000, '.2f')
'5.00'
Run Code Online (Sandbox Code Playgroud)


Dos*_*Dos 5

最短的 Python 3 语法:

n = 5
print(f'{n:.2f}')
Run Code Online (Sandbox Code Playgroud)