C# 在C中将NaN值转换为空字符串#
我希望这不是一个愚蠢的问题,但我会尽力解释 我从数据库中读取平均值并将其写入矩阵,我做了一个for循环将零附加到矩阵中,这样我就可以看到下面的坐标是否有值 我的问题是: 我现在需要计算平均值,而不必从for循环中添加零。我只是删除了for循环,但现在我的控制台中有一个NaN值 是否仍要将NaN值转换/过滤为空字符串C# 在C中将NaN值转换为空字符串#,c#,C#,我希望这不是一个愚蠢的问题,但我会尽力解释 我从数据库中读取平均值并将其写入矩阵,我做了一个for循环将零附加到矩阵中,这样我就可以看到下面的坐标是否有值 我的问题是: 我现在需要计算平均值,而不必从for循环中添加零。我只是删除了for循环,但现在我的控制台中有一个NaN值 是否仍要将NaN值转换/过滤为空字符串 for (int y = 1; y <= koordinaten.Laenge; y++) {
for (int y = 1; y <= koordinaten.Laenge; y++)
{
for (int x = 1; x <= koordinaten.Breite; x++)
{
var sK = sensorKoordinaten
.Where(sKoordinaten =>
sKoordinaten.XKoordinate == x && sKoordinaten.YKoordinate == y)
.DefaultIfEmpty(new Sensor())
.FirstOrDefault();
var messung = results.Where(messungAVG => messungAVG.IDSensor == sK.ID).ToList();
var anzahl = DBHelper.GetAnzahlFromMessungKopf(idmessung);
double summe = 0;
double ergebnis = 0;
int d;
//Berechnet den Mittelwert
for (d = 0; d < messung.Count; d++)
{
summe += messung[d].Messwert;
}
ergebnis = summe / d;
Console.Write($" {ergebnis.ToString("N2")} ");
}
Console.Write("\n");
}
Console.ReadKey();
for(int y=1;y messungAVG.IDSensor==sK.ID).ToList();
var anzahl=DBHelper.GetAnzahlFromMessungKopf(idmessung);
双和=0;
双ergebnis=0;
int d;
//密特维特酒店
对于(d=0;d
您收到一个错误,因为messung
为空
if (messung.Any()) // same logic than `if (messung.Count > 0)` as @Matthew Watson said
{
// by the way linq can handle sum
// ergebnis = messung.Sum(x => x.Messwert) / messung.Count;
// in fact you can go further, linq includes Average
ergebnis = messung.Average(x => x.Messwert);
}
提供…提供示例数据
Double。IsNaN
会告诉你某件事是否是NaN
,所以你可以用它做任何你喜欢的事情,但如果没有代码,就不可能知道在你的情况下这样做是否合适。对不起,伙计们。我编辑过:)你应该特别处理messung.Count
为零的情况,因为那样你就没有平均值了。也许在循环中放置一个if(messung.Count>0)
?