float MSflow = 0;
float Rndisflow = 0;
float GPRSflow = 0;
float WIFIflow = 0;
float totalflow = 0;
for (int i = 0; i < tbl.Table.Length; i++)
{
{
string name = GetNetInfo(tbl.Table[i]).Name.Replace("\0", "");
float inFlow = GetNetInfo(tbl.Table[i]).InOctets;
float outFlow = GetNetInfo(tbl.Table[i]).OutOctets;
totalflow = totalflow + (inFlow + outFlow);
if (name == "MS TCP Loopback interface")
{
MSflow = inFlow + outFlow;
}
else if (name == "RndisFn1")
{
Rndisflow = inFlow + outFlow;
}
else if (name == "TNETW12511")
{
WIFIflow = inFlow + outFlow;
}
}
totalflow = totalflow / (1024 * 1024);
GPRSflow = totalflow - MSflow - Rndisflow - WIFIflow;
}
if (iFlag == true)
{
AppUtils.config.GprsUsednum = (float.Parse(AppUtils.config.GprsUsednum) + float.Parse(AppUtils.config.GprsUsedFlag)).ToString();
AppUtils.config.WifiUsednum = (float.Parse(AppUtils.config.WifiUsednum) + float.Parse(AppUtils.config.WifiUsedFlag)).ToString();
iFlag = false;
}
AppUtils.config.GprsUsedFlag = GPRSflow.ToString();
AppUtils.config.WifiUsedFlag = WIFIflow.ToString();
GPRSflow 出现负数。
——因为float会导致小数点以后的数据出错,出现偏差;而且,inFlow 本身是uint型。
需要把float改成uint。