## 问题：在Python中显示带有两位小数的浮点数

I have a function taking float arguments (generally integers or decimals with one significant digit), and I need to output the values in a string with two decimal places (5 -> 5.00, 5.5 -> 5.50, etc). How can I do this in Python?

## 回答 0

``````>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'``````

You could use the string formatting operator for that:

``````>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'
``````

The result of the operator is a string, so you can store it in a variable, print etc.

## 回答 1

``"{:.2f}".format(5)``

Since this post might be here for a while, lets also point out python 3 syntax:

``````"{:.2f}".format(5)
``````

## 回答 2

f字符串格式：

``````>>> 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!``````

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

f-string formatting:

This was new in Python 3.6 – the string is placed in quotation marks as usual, prepended with `f'...` in the same way you would `r'...` for a raw string. Then you place whatever you want to put within your string, variables, numbers, inside braces `f'some string text with a {variable} or {number} within that text'` – and Python evaluates as with previous string formatting methods, except that this method is much more readable.

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

My number is 3.14 - look at the nice rounding!
``````

You can see in this example we format with decimal places in similar fashion to previous string formatting methods.

NB `foobar` can be an number, variable, or even an expression eg `f'{3*my_func(3.14):02f}'`.

Going forward, with new code I prefer f-strings over common %s or str.format() methods as f-strings can be far more readable, and are often much faster.

## 回答 3

``print "%.2f" % 5``

String formatting:

``````print "%.2f" % 5
``````

## 回答 4

``````>>> "%0.2f" % 3
'3.00'``````

Using python string formatting.

``````>>> "%0.2f" % 3
'3.00'
``````

## 回答 5

``````a = 6.789809823
print('%.2f' %a)``````

``print ("{0:.2f}".format(a)) ``

``print(round(a, 2))``

round（）的好处是，我们可以将结果存储到另一个变量中，然后将其用于其他目的。

``````b = round(a, 2)
print(b)``````

String Formatting:

``````a = 6.789809823
print('%.2f' %a)
``````

OR

``````print ("{0:.2f}".format(a))
``````

Round Function can be used:

``````print(round(a, 2))
``````

Good thing about round() is that, we can store this result to another variable, and then use it for other purposes.

``````b = round(a, 2)
print(b)
``````

## 回答 6

``````n = 5
print(f'{n:.2f}')``````

Shortest Python 3 syntax:

``````n = 5
print(f'{n:.2f}')
``````

## 回答 7

``format(value, '.2f')``

``````>>> format(5.00000, '.2f')
'5.00'``````

If you actually want to change the number itself instead of only displaying it differently use format()

Format it to 2 decimal places:

``````format(value, '.2f')
``````

example:

``````>>> format(5.00000, '.2f')
'5.00'
``````

## 回答 8

Python 3：

``````>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict)
0.12_0.13``````

I know it is an old question, but I was struggling finding the answer myself. Here is what I have come up with:

Python 3:

``````>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict)
0.12_0.13
``````

## 回答 9

``print('%.2f' % number)``

Using Python 3 syntax:

``````print('%.2f' % number)
``````

## 回答 10

``````a = eval(format(float(input()), '.2f'))   # if u feed 3.1415 for 'a'.
print(a)                                  # output 3.14 will be printed.``````

If you want to get a floating point value with two decimal places limited at the time of calling input,

Check this out ~

``````a = eval(format(float(input()), '.2f'))   # if u feed 3.1415 for 'a'.
print(a)                                  # output 3.14 will be printed.
``````