public int total;
public int likes;
public double average;
total = 5;
likes = 21;
average = likes / total;
Log.d("Average", average);
嗨,average = likes / total should
返回4.2,但是,它正在运行4.0。如何将其保留为4.2而不是4.0?
答案 0 :(得分:2)
average = (double)likes / total;
答案 1 :(得分:1)
仅使用整数进行计算会导致结果为整数,即使稍后将其分配给浮点值(如double)也是如此。整数除法的工作原理是计算分母完全适合分子的次数。
要解决此问题,您必须在分区中强制转换2个操作数中的至少一个,以便已经以双精度执行除法(算术运算中的数字会自动转换为允许的类型如果至少有一个操作数具有该精度,则精度高于其操作数:
average = (double)likes / total;
或
average = likes / (double) total;
请注意,这与average = (double) (likes / total);
不同,HWilson
会在结果已经过舍入后投出结果。