如何显示有两个小数点后的浮点数?

我有一个函数接受浮点参数(通常是整数或有一个有效数字的小数),我需要在一个有两位小数的字符串中输出值(5→5.00,5.5→5.50等)。如何在Python中做到这一点?

505353 次浏览

字符串格式:

print "%.2f" % 5

你可以使用字符串格式化操作符:

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

操作符的结果是一个字符串,所以你可以把它存储在一个变量中,打印等等。

使用python字符串格式化。

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

因为这篇文章可能会在这里一段时间,让我们也指出python 3的语法:

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

使用Python 3语法:

print('%.2f' % number)

f-string格式:

这在Python 3.6中是新的——字符串像往常一样放在引号中,前面加上f'...,就像对原始字符串使用r'...一样。然后你把你想要放在字符串中的任何东西,变量,数字,放在花括号f'some string text with a {variable} or {number} within that text' - Python的计算方法与以前的字符串格式化方法一样,除了这个方法更可读。

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

在这个例子中,你可以看到我们格式为小数点的方式与前面的字符串格式化方法类似。

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

展望未来,在新的代码中,我更喜欢f-字符串而不是常见的%s或str.format()方法,因为f-字符串可以更易于阅读,并且通常是

如果你真的想改变数字本身,而不是仅仅以不同的方式显示它,请使用format()

格式为小数点后2位:

format(value, '.2f')

例子:

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

我知道这是一个老问题,但我自己也在努力寻找答案。以下是我的想法:

Python 3:

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

字符串格式:

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

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

Round函数可以使用:

print(round(a, 2))

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

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

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

最短的Python 3语法:

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

如果你想在调用输入时得到一个小数点后两位有限制的浮点值,

看看这个~

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

Python 3

print(f"{number:.2f}")

一种更简短的格式化方法。

在一些积累之后,我遇到了这个问题。所以我学到的是把你想要的数字相乘,最后除以相同的数字。所以它应该是这样的:(100(x+y))/100 = x+y如果你的数字是0.01 20.1 3 05。 如果您的数字类型未知,您可以使用number * (len(number)-1)**10