2016-10-13 5 views
-1

私は本当にこれで苦労しています。このコードは、合計支払いを解決してサブ合計TextBoxに入れることを想定していますが、double(価格にはdecimalsがあるため)に変換しようとすると、これが発生しました。私はintを試してみましたが、問題はありませんでした。'double'から 'string'に変換できません - > Listviewサブアイテム

これにはどのような解決策がありますか?

double i = 0; 
double j = 0; 
double k = 0; 
i = 0; 
j = 0; 
k = 0; 

try 
{ 
    j = lstvProds.Items.Count; 
    for (i = 0; i <= j - 1; i++) 
    { 
     k = k + Convert.ToDouble(lstvProds.Items[i].SubItems[4].Text); 
    } 

    //double l = Convert.ToDouble(k); 

} 

catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 
return k; 
+0

おっとごめん!それは今そこにある – Sam

+1

なぜ私はダブルと宣言されていますか?私のタイプとしてintを使用してみてください... –

+0

しよう! @Philip – Sam

答えて

0

ちょうどそれを明確にするために、私は答えに私のコメントを変換し、根本的な問題手の込んだ:明確にするため

を:問題は、実行時にコンパイルエラーではなく、例外でした。

その理由は以下の部分であった:

lstvProds.Items[i] 

商品[]演算子はストリングと整数パラメータでオーバーロードされています。整数バージョンはi番目の要素を返し、文字列versionは同じ名前のリスト内の一致する項目を探します。

これがエラーの理由です。「i」はダブルです。整数を使用し、すべてが正常である...

PS:文字列にダブルを解析するとcompletly異なる機能につながる可能性が...

関連する問題