计算进度对话框的完成百分比

时间:2011-09-20 15:43:46

标签: android progress-bar

我正在尝试使用进度对话框来显示完成2次密集型功能的时间。

在我的第一个函数中,我有db条目的总数和一个计数器,表示我经历了do / while循环的次数。完成后,进度对话框应为50%

所以我这样做:

double total = (counter/dbEntries)*100; //counter and dbEntries are both int's

然后我将总数除以2,因为我想要完成一半的金额,因为有2个函数

double realPercentDone = total/2.0;

所以说counter is 3dbEntries is 36等于0.08 or 8% when multiplied by 100,但总数为0.我做错了什么?

3 个答案:

答案 0 :(得分:3)

如果counterdbEntries都是整数,则可能在第一个表达式的括号中执行整数除法。 3 div 36 = 0

尝试将其更改为以下内容:

double total = 100.0 * counter / dbEntries;

double total = (1.0 * counter / dbEntries) * 100.0;

注意:使用100.0而不是100,以便进行浮点计算。

答案 1 :(得分:0)

您应该投射,或使用counterentries的双重类型。我假设你现在正在使用整数,并且当进入时,3/36 = 0,当然0 * 100仍然是0。

答案 2 :(得分:0)

另外,请注意,如果你总是将总数除以2,那么你永远不会达到100%,你将在0%到50%之间。