我正在尝试分割driveinfo.availablefreespace和driveinfo.totalsize的值,以尝试在进度条中使用其中的一个百分比。
我需要结束值是一个int,因为progressbar.value需要一个int,上面的方法返回一个long。
我认为这是价值观:
164660715520---可用空间
256058060800---总尺寸
当我尝试使用此方法设置progressbar.value时,也会得到一个错误:
progressBar1.value=(int)(dinfo.availableFreespace/dinfo.totalSize)*100;
当我使用此代码尝试获取值时,它只返回0。
label10.Text = (((int)dInfo.AvailableFreeSpace/dInfo.TotalSize)*100).ToString();
我甚至试过但都没用:
label10.Text = ((dInfo.AvailableFreeSpace/dInfo.TotalSize)*100).ToString();
我知道我仍然需要做一些格式化来让它看起来很好,但是每当我运行代码时,它只返回0。
这和从long到int的转换有关吗?
最佳答案
整数除法只返回整数部分。所以3/5等于0。您至少需要将其中一个因素视为浮点数。试试这个:
label10.Text = (((int)((double)dInfo.AvailableFreeSpace/dInfo.TotalSize)*100)).ToString();