如何以 MB 为单位显示长单位,并在进度条中显示进度百分比
本文关键字:显示 百分比 单位 MB 为单位 | 更新日期: 2023-09-27 17:56:43
我有这一行:
backgroundWorker1.ReportProgress((int)obj.BytesSent);
BytesSent 是一个长变量。我需要将其投射到 (int) 来报告它。
现在在backgorund1进度更改事件中,我想将其显示为MB。例如 0.3MB 0.7MB 33MB 而不是显示字节。
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
toolStripStatusLabel2.Text = e.ProgressPercentage.ToString();
}
如何将其显示为 MB 而不是字节?
如何计算并在进度更改事件中将 e.进度百分比显示为进度栏中的百分比?从 0 到 100,具体取决于事件的进度:
私有无效videosInsertRequest_ProgressChanged(IUploadProgress obj) {
toolStripStatusLabel1.Text = obj.Status.ToString(); backgroundWorker1.ReportProgress((int)obj.BytesSent); }
我还想显示发送了多少 MB,并在进度条中以百分比显示进度。
如何将其显示为 MB 而不是字节?
如果你每 10 位移一个数字,你所做的大小将大一个单位,所以10
是 Kb,20
是 Mb,30
是字节,依此类推。因此,如果您将数字除以 1 << 20
则将除以兆字节为单位的字节数,从而得出以兆字节为单位的总字节数。
double mbSent = ((double)obj.BytesSent) / (1 << 20);
我首先将 BytesSent 转换为double
,这样我们就不会得到整数除法。
我如何计算并在进度更改事件中将 e.进度百分比显示为进度栏中的百分比。
为此,只需将字节发送除以字节总数,然后乘以 100。
double percentComplete = ((double)obj.BytesSent) / totalBytes * 100;
然后,您可以将完成百分比分配给进度条的值。
要以 MB 为单位显示大小,您应该以 B 为单位显示大小并将其除以 1024^2。要以百分比显示进度,您必须将下载的部分的大小除以文件大小。