尝试在Java中执行计算时遇到了一些问题。这是我的代码:
NumberFormat pctFormatter = NumberFormat.getNumberInstance();
pctFormatter.setMinimumFractionDigits(0);
pctFormatter.setMaximumFractionDigits(0);
for(int count = 0; count< amtGenderList.size(); count++){
if(amtGenderList.get(count).getGender().equals("M")){
totalMale = Integer.parseInt(amtGenderList.get(count).getTotalAttendee())/totalAttendee * 100;
Log.i("Male", String.valueOf(totalMale));
}else{
totalFemale = Integer.parseInt(amtGenderList.get(count).getTotalAttendee())/totalAttendee * 100;
}
Log.i("Total",amtGenderList.get(count).getTotalAttendee());
Log.i("Gender",amtGenderList.get(count).getGender());
}
Log.i("M", pctFormatter.format(totalMale));
Log.i("F", pctFormatter.format(totalFemale));
我打印出日志以检查值。所以基本上我有一个totalAttendee变量来存储某个事件的总参加者。然后从那里,我执行另一个SQL来获取totalMale和totalFemale。
当我尝试执行一些计算以获得totalMale和女性超过totalAttendee的百分比时,我得到的结果为:
12-01 17:20:26.348: I/Total(10393): 1
12-01 17:20:26.348: I/Gender(10393): F
12-01 17:20:26.348: I/Male(10393): 0.0
12-01 17:20:26.348: I/Total(10393): 2
12-01 17:20:26.348: I/Gender(10393): M
12-01 17:20:26.348: I/M(10393): 0
12-01 17:20:26.348: I/F(10393): 0
我设法从日志中打印出Total和Gender,这意味着我的检索没有问题。但是,当我试图将其转换为百分比时,我得到0.任何想法?
答案 0 :(得分:2)
你在这里进行整数除法:
Integer.parseInt(amtGenderList.get(count).getTotalAttendee())/totalAttendee * 100
如果进行整数除法,事情会被截断,例如75 / 100
为0
。
通过将其中一个值转换为double
来进行浮点除法:
Integer.parseInt(amtGenderList.get(count).getTotalAttendee()) / (double) totalAttendee * 100