python循环小数精度问题

如图 牛客网刷题:

img


双精度浮点数float64精确到小数点后16位
而我计算过程中会生成如[0.6666666666666666, 0.3333333333333333]这样的数据导致精度出现问题
对于这种循环小数如果能0.3333333333333334就好了
我采取的办法:1. 换算成ndarray数组comple128不行 2. 使用decimal也不行(用到log等函数) 3. 不能先不处理成非小数的形式 如1/3
有效办法:面向答案编程

想要请教如何控制这种精度 感谢

你可以把具体的题目贴一下,然后看看到底是个什么情况,为什么不能用decimal,因为16位以后除了decimal也没有其他好的办法去控制精确度了

应该是python计算的如0.3333333333333333更精确吧
你这个预期的输出结果如0.3333333333333334反到没有python精确
所以你. 换算成ndarray数组comple128是提高精确度是不行的

0.6666666666666666
应该是
0.6666666666666667
才对
你使用的精度必须比它要求的精度高,然后再四舍五入到它要求的精度,而不是后面的直接截断

算出来补个小数就行了