2016-10-13 2 views
-1

Ich habe wirklich eine harte Zeit damit. Dieser Code soll eine Gesamtbezahlung lösen und in die Subsumme setzen TextBox, aber wenn ich versuche, es in double umzuwandeln (weil die Preise decimals haben), ist das, was es mit kam. Ich habe versucht int und es hatte keine Probleme.Kann nicht von 'doppelt' in 'string' konvertieren -> Listview subitem

Irgendwelche Lösungen dafür?

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

oops Entschuldigung! es ist jetzt – Sam

+1

Warum wird ich als doppelt deklariert? versuchen Sie es mit Int als Typ für i ... –

+0

wird versuchen! @Philip – Sam

Antwort

0

Nur klar zu machen, ich meinen Kommentar zu einer Antwort zu konvertieren und das zugrunde liegende Problem erarbeiten:

Um klar zu sagen: Das Problem war ein Übersetzungsfehler, keine Ausnahme während der Laufzeit.

Der Grund dafür war der folgende Teil:

lstvProds.Items[i] 

Der Artikel Operator [] mit einem String und einem Integer-Parameter überlastet ist. Die Ganzzahlversion gibt das i-te Element zurück, die Zeichenfolgenversion sucht nach einem übereinstimmenden Element in der Liste mit demselben Namen.

Das ist der Grund für den Fehler: 'i' ist ein Doppel. Wurde mit einer ganzen Zahl, alles ist in Ordnung ...

PS: das doppelte auf einen String-Parsing zu einer völlig anderen Funktionalität führen könnte ...

Verwandte Themen