C语言基础问题,关于数据类型

#include
#include
int main()
{
double sum;
int m,z;
for(z=1,sum=0,m=1;fabs(z/m)>=(1e-6);)
{
sum=sum+z/m;
m=m+2;
z=-z;
}
printf("pi的值:%.10f\n",4*sum);
return 0;
}
为什么输出结果不正确,将m改为double型就正确了?

int除以int结果还是int ,比如5/3结果是1,但是如果除数是小数,比如5/3.0就是1.7777有小数的

img

你应该是把z改成了double才行把