use*_*889 3 python math decimal rounding python-3.x
我遇到了python圆函数的问题.当我通过执行round(0.715,2)
答案是2位数来回答是0.71时,类似地,当我执行round(0.615,2)
结果是0.61时.但是当我执行round(0.515,2)
它时给出0.52,类似round(0.915,2)
的结果是0.92.
有人可以解释一下吗?
这是由于您使用的数字的浮点近似值.只有~16个有效十进制数字.正如你所看到的那样,前两个略微低于,而后两个略微超过
>>> "%.20f"%0.715
'0.71499999999999996891'
>>> "%.20f"%0.615
'0.61499999999999999112'
>>> "%.20f"%0.515
'0.51500000000000001332'
>>> "%.20f"%0.915
'0.91500000000000003553'
Run Code Online (Sandbox Code Playgroud)
如果您需要更好的表现,请考虑使用该decimal
模块