我正在尝试使用一个进度对话框来显示完成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,以便完成浮点计算.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。