你好,为什么我在这里进行除法时结果不好。我在array [0]中有4位数字3 4 5 1的结果,如果13并从4结果除以需要3.25但在我做错的地方得到3.0?
final long[] total = {0};
eventReference.child(eventId).child("EventRating").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
int rating = snapshot.child("rated").getValue(Integer.class);
total[0] = total[0] + rating;
}
}
double average = total[0] /dataSnapshot.getChildrenCount();
Toast.makeText(getContext(), average + " " + total[0], Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
答案 0 :(得分:0)
使用名称getChildrenCount()
可以理解,此方法返回一个整数,如果这样,则可能是个问题,因为在您的情况下,Java中用整数除以总是会导致integer
它被隐式转换为double
,因此您得到3.0。
尝试将以下行替换为:
double average = total[0] / (double) dataSnapshot.getChildrenCount();