如何防止数字四舍五入为 0,Android Studio

How to prevent number being rounded to 0, Android Studio

    public int total;
    public int likes;
    public double average;

    total = 5;
    likes = 21;

    average = likes / total;

    Log.d("Average", average);

嗨,average = likes / total should return 4.2,但是,它是 运行 4.0。我怎样才能将它保持为 4.2 而不是 4.0?

average = (double)likes / total;

仅使用整数进行计算会导致最终结果为整数,即使稍后您将其分配给浮点值(如双精度)也是如此。整数除法通过计算分母完全适合分子的次数来计算。

要解决这个问题,您必须至少转换除法中的 2 个操作数之一,这样除法已经以双精度执行(算术运算中的数字会自动转换到允许比其操作数更高精度的类型,如果至少一个操作数具有该精度):

average = (double)likes / total;

average = likes / (double) total;

请注意,这与 average = (double) (likes / total); 不同,后者会在向下舍入后转换结果。