使用C#,我有5个字符串从Arduino板上的温度传感器读取数据:
string currentTemp1 = serialPort1.ReadLine();
Thread.Sleep(1000);
string currentTemp2 = serialPort1.ReadLine();
Thread.Sleep(1000);..... and so on.
这会将值返回到字符串中,例如:19.45,19.45,19.50,19.45,19.50。
我尝试了一些研究来尝试获得平均值,但是我在解决如何将带有2位小数的字符串转换为整数,然后获得平均值时遇到了问题。
有人可以指出我正确的方向。
答案 0 :(得分:7)
问题是您不希望将字符串解析为整数。你应该使用float / double / decimal:
var temp1 = float.Parse(currentTemp1);
var temp2 = float.Parse(currentTemp2);
var average = (temp1 + temp2) / 2;
或者,如果存在可变数量的整数,则可以使用循环:
var temps = currentTemp1.Split(", ");
float total;
foreach (var t in temps)
{
total += float.Parse(t);
}
var average = total / temps.Length;