为什么每次迭代后value的值都会变成0

img


为什么每次迭代后value的值都会变成0,不知道哪里出了问题,

【温馨提示:若能帮助到您,望给个采纳答案,谢谢!】

1、原因
当i=2时或者i==能够整除2时,都会进入这句:value=(-1)/(2*i-1);
正负整数除以正负整数,所得的值都会取整,当所得的值小于1时,就只会显示0

img

2、调整

value=(-1)/(2*i-1); 改为 value=(-1.0)/(2*i-1);
value=1/(2*i-1); 改为 value=(1.0)/(2*i-1);

3、效果如下

img

当i=2 时候 就等于 (-1)/3 的值等于0 /是 除法运算符,并且运算结果遵从向下取整。

1是整数,2 * i-1也是整数,相除的结果还是整数,2 * i-1>1的话,那么结果就是0
改为:1.0/(2 * i-1)

value = (这后面需要转化为double类型的值)否则像1/3的int类型就是0,强转为double就是0.0 在后面1.0就是了
value = 1/(2
i-1)*1.0

1/x ;x除了1都是小于1的那么就是0;
改成 -1.0 /x 和 1.0 / x