如何防止数字四舍五入为 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);
不同,后者会在向下舍入后转换结果。
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);
不同,后者会在向下舍入后转换结果。