| ■No86697 (WebSurfer さん) に返信
>>if ( this.DataGridView1[ i, s ].Value is long ) > > の if 文の条件が false になって合計は得られないのは当然の結果なのですが。
はい、なので、それをどうしたら合計できるかという質問なのです・・・・
最初に記載させて頂いた通り
> 中には文字列のデータと数値のデータが混在している状態で、 > その中の数値データのみ行合計を出したいです。
というのが今回の目的です。 分かり辛く申し訳ありません。
> 何かしたいのかよく分かりませんが、想像をふくらませると、"ABC", "あいう", "123" という文字列が > 格納されていて、"123" だけ取り出して合計したいということではないかと思うんですが、どうでしょう?
はい、仰る通りです。
> であれば、文字列を希望の数値型(long 型?)パースできるかどうかを調べて、パース可能ならばパース > して合計するということになるはずです。
なるほど、キャストとパースでは違う判定結果になるということですかね? 同じ考え方で、long型にキャストできるかどうかを調べていた( Value is long )つもりでした。
パースを調べて実際に入力してみました。 long data; if ( long.TryParse(this.payrollBox[ i, s ].Value, out data) ) { total += data; }
しかし、「long.TryParse(this.payrollBox[ i, s ].Value」 の部分で 「引数1 は objectからstringへ変換することはできません」とエラーの表示が出てしまいます。 やり方が悪いのでしょうか? |