我运行了一个简单的python命令,它得出以下结果。谁能告诉我为什么?
a=[[0.12,0.35],[0.66,0.79]]
b=[[10*i,10*j] for i,j in a]
我得到了以下结果:
b=[[1.2, 3.5], [6.6000000000000005, 7.9]]
答案 0 :(得分:0)
这是简单的表示“错误”。二进制数字不代表具有完美准确性的十进制值,任何超过终止十进制的数字都可以准确地表示,例如1/7。
0.66是一个小数,其二进制表示只是一个高发(实际上,它们都会有点“关闭”,但这是唯一一个只显示10倍的因子)。您可以通过切换到十进制数据类型来“修复”此问题。