计算进度百分比

log*_*eks 12 c#

我正在使用webclient来降级文件.我正在计算进度百分比如下

  1. 我知道要下载的文件的文件大小(我从数据库表中读取).

  2. 我依赖BytesRecievedWebClient 的属性来了解下载过程中获取的总字节数.

  3. 我使用的算法是double dProgress = (e.BytesReceived / FileSize)*100);计算进度百分比.

但是,我没有获得正确的进度百分比来更新进度条.

有没有办法计算进度百分比?

Pet*_*hev 26

请看以下行: double dProgress = (e.BytesReceived / FileSize)*100)

如果两个e.BytesReceivedFileSize是整数,那么你将永远有0 * 100 = 0.

做这样的事情:

double dProgress = ((double)e.BytesReceived / FileSize)*100.0

这是因为/在划分两个整数时进行整数除法.但你不希望如此.所以你将其中一个变量转换为double.


And*_*aev 6

BytesReceived 和 FileSize 最有可能是整数,因此您需要以这种方式计算进度:

double dProgress = 100.0 * e.BytesReceived / FileSize;
Run Code Online (Sandbox Code Playgroud)