0

Graphics.DrawLine メソッドで NaN 値を扱いたい。以下のコード スニペットを参照してください。

Private Graphics g;

m_g.DrawLine(pen, x1, y1, x2, y2);

場合によっては、私たちのプロジェクトy1y2値が ですNaN。そのため、「オーバーフロー エラー」のような例外がスローされます。

NaN値に対してこれを処理する方法。

4

2 に答える 2

1

唯一の解決策は、値のいずれかが NaN であるかどうかを確認し、そうである場合 (x1、x2 などがfloats の場合) 、DrawLine を呼び出さないことです。

if (Single.IsNaN(y1) || Single.IsNaN...)
{
    //Handle error
}
else
{        
    m_g.DrawLine(pen, x1, y1, x2, y2);
}
于 2013-04-11T04:24:10.903 に答える
0

データが何らかのグラフを表していると仮定すると、NaN は次の 2 つのいずれかを意味します。

  1. データにエラーがある可能性があります。
  2. データに有効なギャップがある可能性があります。

最初のケースでは、NaN はデータが不良であることを意味し、2 つの選択肢があります。1 つも描画しないか、最初の NaN まですべてを描画するかです。いずれにせよ、ユーザーに問題を警告する必要があります。

2 番目のケースでは、NaN がある場合は、データを NaN を含まない個々のセクションに「切り刻み」、それらのセクションを描画する必要があります。次に、グラフには(有効な)ギャップがあります。

于 2013-04-11T06:22:07.740 に答える