我正在尝试使用一个进度对话框来显示完成2个时间密集型功能需要多长时间.
在我的第一个函数中,我具有数据库条目的总数和一个计数器,该计数器表示我经历了一次do / while循环.完成后,进度对话框应为50%
所以我做:
double total = (counter/dbEntries)*100; //counter and dbEntries are both int's
然后我将总数除以2,因为我想完成一半的量,因为有2个函数
double realPercentDone = total/2.0;
所以说计数器是3,而dbEntries是36,乘以100等于0.08或8%,但总数始终为0.我在做什么错?
解决方法:
如果counter和dbEntries都是整数,则可能在第一个表达式的括号中执行整数除法. 3 div 36 = 0.
尝试将其更改为如下所示:
double total = 100.0 * counter / dbEntries;
要么
double total = (1.0 * counter / dbEntries) * 100.0;
注意:使用100.0而不是100,以便完成浮点计算.