【问题标题】:Average of Strings With 2 Decimal Points带 2 个小数点的字符串的平均值
【发布时间】:2013-12-17 02:19:23
【问题描述】:

使用 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 位小数的字符串转换为整数,然后获取平均值时遇到了问题。

谁能指点我正确的方向。

【问题讨论】:

    标签: c# average


    【解决方案1】:

    问题是您不想将字符串解析为整数。您应该改用浮点/双精度/小数:

    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;
    

    【讨论】:

    • 缺少有关该问题的其他信息,该示例应使用decimal 而不是float,因为它提供了最高的精度。
    • 如何将“平均值”传回,以便将内容推送到文本框中?
    • @TheWoo: return average.ToString().
    • 太棒了。非常感谢所有这些。
    • 同意@EricJ。浮点数会出现精度错误,这会产生不一致的结果。最好使用小数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多