float的时候算的才准确! int 的时候在运算的时候都只保留整数 比如你算 1 / 2 的时候用float得到的是0.5, 用int的的话得到的就是0了,你可以试试看。很显然你for循环中出现了除法,不能整除的时候得到的结果用int就会跟正确的(float得到的)相差越大
必须会变,比如3/2,float的话他是0,int的话是1
i/k又不是整数,结果当然会变了