我需要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)? –