我的 C# 程序遇到了一些速度问题,并确定此百分比计算导致速度变慢。计算很简单,n/d * 100。分子和分母都可以是任何整数。分子永远不会大于分母,也永远不会是负数。因此,结果始终为 0-100。现在,这是通过简单地使用浮点数学来完成的,而且速度有点慢,因为它被计算了数千万次。我真的不需要比最接近的 0.1% 更准确的东西。而且,我只是使用这个计算值来查看它是否大于一个固定的常数值。我在想一切都应该保持为整数,所以精度为 0.1 的范围是 0-1000。有没有什么方法可以在没有浮点数学的情况下计算这个百分比?
这是我用于计算的循环:
for (int i = 0; i < simulationList.Count; i++)
{
for (int j = i + 1; j < simulationList.Count; j++)
{
int matches = GetMatchCount(simulationList[i], simulationList[j]);
if ((float)matches / (float)simulationList[j].Catchments.Count > thresPercent)
{
simulationList[j].IsOverThreshold = true;
}
}
}