[英]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.