1,n 均为int 型,加了括号先计算(1/n)则结果取int型。不加(),1显示转换为float型, 则计算为float型 /int 型 , int 会隐式转换为float型参加运算,结果为float型。 由于加不加()导致了强制类型转化的先后不同, 1/n 如果用Int 型计算的话 这一步运算数值已经出现偏差了。ps:验证,(float)(1.0/n)*flag 这样写结果就不会错