我需要5/7
轉換爲20
小數 以下不工作(好像最大精度爲15):四捨五入到n十進制問題
format(float(5)/float(7), '.%20f')
輸出0.714285714285714301575
round(float(n)/float(d) * 10**20)/10**20
輸出0.714285714286
我在做什麼錯了?浮動的最大精度是多少?
我需要5/7
轉換爲20
小數 以下不工作(好像最大精度爲15):四捨五入到n十進制問題
format(float(5)/float(7), '.%20f')
輸出0.714285714285714301575
round(float(n)/float(d) * 10**20)/10**20
輸出0.714285714286
我在做什麼錯了?浮動的最大精度是多少?
工作對我來說是這樣
對於Python 3.X
>>> '{:.9f}'.format(8/3)
'2.666666667'
>>> '{:.15f}'.format(8/3)
'2.666666666666667'
>>> '{:.20f}'.format(8/3)
'2.66666666666666651864'
對於Python 2.X
>>> '{:.20f}'.format(8.0/3)
'2.66666666666666651864'
>>> '{:.20f}'.format(8/3.0)
'2.66666666666666651864'
>>> '{:.20f}'.format(float(8)/3)
'2.66666666666666651864'
>>> '{:.20f}'.format(8/float(3))
'2.66666666666666651864'
OP想轉換'5/7',你爲什麼不使用這些值? – martineau
沒理由,我只是隨機挑選。您也可以使用5/7,它將工作 –
'{:.20f}'。format(5/7.0)給出'0.71428571428571430157'給出正確的字符串,但我需要float和float('{:。20f}'.format (5/7.0))給出不正確的結果。 –
您是否嘗試過使用十進制類型... 'from decimal import * 十進制(5)/十進制( 7)' https://docs.python.org/2/library/decimal.html – jcfollower
請參閱此處的提示:https://docs.python.org/3/tutorial/floatingpoint.html#representation-error – Arseniy
應該如何處理我是十進制(5)/十進制(7)? –