楼上说的对,因为数字在java中的默认类型是int,1/2是0.5,转化成int就是0,再强制转化成float就是0.0,同理1/3转化成float也是0.0

解决方案 »

  1.   

    第8行换成b -= (1 / (float)i);
    第12行换成b += (1 / (float)i);
      

  2.   

    原先的写法”(1/i)“会按照int类型进行除法,所以得出来的数值一定是整数,在得到整数的基础上再转成float类型已经晚了,所以必须在”(1/i)“进行运算的时候就得按float进行运算,把i转成float类型后,整体的”(1/i)“就会按照float类型进行运算