MJ / SUM * 40是有小数的,但是MJ本身Integer类型的,所以在赋值的时候MJ=MJ / SUM * 40就已经把结果转为Integer类型了。 不是因为*40把类型转化了,而是在最后计算完成后,你把这结果再次赋值给MJ这个变量,但是因为MJ他定义的时候是Integer类型,所以在赋值过程会把这结果取整了。 最后那个敏捷被用百分比显示了 你这4个数占40的比例从结果来看没问题啊。。。你攻击9999,其他最大才几百,占比上是很正常的啊,加起来总和也是约等于40把。。 不是77的占比没6的占比多,是6的占比本来是0.021877....,但是显示模式是:2.1877....*10^-2,也就是他是科学计数法显示的,你label太短后面的看不见,所以你就觉得77的占比比6还少了 你那太长了,最好把他format了,固定输出几位数