"入力文字列が正しい形式ではありませんでした。"このコードからのエラー入力文字列の形式が正しくありませんでした。 C#(新)
rainTb.Text = " " + int.Parse(parsed[0]) * 100/1023;
私のコードに誤りはありません。上記のエラーを除いて。私はシリアル通信(ケーブル)を介してArduinoハードウェアからアナログ値(上記の計算値)を抽出する計算をしました。 Arduinoはうまく動作します。このエラーが表示されるまで、すべては問題ありませんでした...なぜですか? 叫び
p/s:私はまだ多くの解決策を経てきましたが、まだ私は今ここにいます。それはあなたのコードは、それはあなたが得た例外をスローし、他の正常に動作転換の文字列であれば申し訳ありませんが、私の英語
private void ProcessCOMRx(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(COMRx))
{
systemTb.Text = "Processing Data...";
systemTb.BackColor = System.Drawing.Color.Lime;
string [] parsed = COMRx.Split(',');
int curveNo;
if (parsed.Count() > zedAll.GraphPane.CurveList.Count())
curveNo = zedAll.GraphPane.CurveList.Count();
else
curveNo = parsed.Count();
for (int k = 0; k < curveNo; k++)
{
for (int j = zedAll.GraphPane.CurveList[k].NPts - 1; j > 0; j--)
{
zedAll.GraphPane.CurveList[k].Points[j].Y = zedAll.GraphPane.CurveList[k].Points[j - 1].Y;
}
double temp = 0;
try
{
temp = double.Parse(parsed[k]);
}
catch
{
systemTb.Text = "Parse Error";
systemTb.BackColor = System.Drawing.Color.Red;
}
rainTb.Text = "" + int.Parse(parsed[0]) * 100/1023;
phTb.Text = "" + (3.5 + int.Parse(parsed[1]) * 4.5/1023);
moistTb.Text = "" + int.Parse(parsed[2]) * 100/1023;
tempTb.Text = "" + int.Parse(parsed[3]) * 100/1023;
zedAll.GraphPane.CurveList[k].Points[0].X = 0;
zedAll.GraphPane.CurveList[k].Points[0].Y = temp;
}
}
else
{
this.BeginInvoke(new EventHandler(processPumpStates));
}
}
私のデータはシリアル通信によるものです。 ArduinoからVisual Studioまで。 Arduinoはうまく動作しますが –
デバッガは 'parsed [0]'に何が入っていると言いますか?私は、オプションの先頭に '-'をつけた数字だけではないと思っています。 –
'parse [0]'には何が入っていますか? – Mostafiz