python中的浮点数精度

2024-04-19 04:14:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个变量mn,它的值是2.71989011072,我使用python的round函数得到2.720的精度值,但我只得到2.72

mn=2.71989011072
print round(mn,3)

等于2.72而不是2.720


Tags: 函数精度printmnround
3条回答

函数将其四舍五入到前三位,正确结果为2.72。零是打印字符串格式的问题,而不是四舍五入。在

要打印三个零,您需要执行以下操作:

print '{0:.3f}'.format(round(mn, 3))

它将首先舍入数字,然后打印它,用三个零格式化它。在

您需要数字的特定字符串表示形式,而不是另一个数字。在

使用format()代替round()

>>> mn = 2.71989011072
>>> format(mn, '.3f')
'2.720'

是的,打印功能应用第二次舍入。在

mn = 2.71989011072
mn = round(mn, 3)
print(mn)

您将获得:

^{pr2}$

您需要使用格式化字符串:

^{3}$

您将获得:

2.720

请注意,格式化字符串可以为您进行舍入。 这样,您将得到相同的输出:

mn = 2.71989011072
print("{0:.3f}".format(mn))
# => 2.720

相关问题 更多 >