python 3圆函数逼近

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.

有人可以解释一下吗?

Joh*_*ooy 9

这是由于您使用的数字的浮点近似值.只有~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模块