计算整数百分比
本文关键字:百分比 整数 计算 | 更新日期: 2023-09-27 18:30:09
因此,我想将程序的进度百分比计算为最接近的整数值
在我的例子中,让我们以为例
int FilesProcessed = 42;
int TotalFilesToProcess = 153;
所以我首先尝试了:
Int TotalProgress = ((FilesProcessed / TotalFilesToProcess) * 100)
这返回了TotalProgress = 0
然后我尝试了
Int TotalProgress = (int)((FilesProcessed / TotalFilesToProcess) * 100)
这会导致编译器错误,称为Cannot implicitly convert type decimal to int
我试过
Int TotalProgress = Math.Round((FilesProcessed / TotalFilesToProcess) * 100)
得到The call is ambiguous between decimal and double
所以现在我来这里寻求帮助?
先转换为double
,这样它就不会计算integers
:之间的除法
int totalProgress = (int)((double)FilesProcessed / TotalFilesToProcess * 100);
int FilesProcessed = 42;
int TotalFilesToProcess = 153;
int TotalProgress = FilesProcessed * 100 / TotalFilesToProcess;
Console.WriteLine(TotalProgress);
https://dotnetfiddle.net/3GNlVd
如果你想更准确,你可以使用:
int TotalProgress = Convert.ToInt32(Math.Round(((decimal)FilesProcessed / TotalFilesToProcess) * 100, 0));
如果数字更大,你就会有差异。例如
int FilesProcessed = 42;
int TotalFilesToProcess = 1530;
小数的结果是:2.74%,如果你使用前面的方法,你会得到2%,根据我提出的公式,你会获得3%。最后一个选项具有更高的准确性。