簡體   English   中英

Python中的浮點數精度

[英]Floating point numbers precision in python

我有一個變量mn其值是2.71989011072,我使用python的round函數來獲得2.720的精度值,但我只得到2.72

mn=2.71989011072
print round(mn,3)

給出2.72而不是2.720

是的, 打印功能會進行第二次四舍五入。

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

你會得到:

2.72

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

print("{0:.3f}".format(mn))

你會得到:

2.720

請注意,格式化的字符串可以為您舍入。 這樣,您將獲得相同的輸出:

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

函數將其四舍五入為三個前兩位數字,正確得出2.72。 零是打印字符串格式而不是四舍五入的問題。

要使用三個零打印它,您將需要執行以下操作:

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

這將首先對數字進行四舍五入,然后將其打印出來,並用三個零對其進行格式化。

您需要數字的特定字符串表示形式,而不是其他數字。

使用format()代替round()

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM