none
Wie konvertiere ich Zeichenfolgen in Zahlen? RRS feed

  • Frage

  • Hallo,

    Ich weiß ich stelle sehr oft Fragen. Dieses mal lautet meine Frage : Wie kann ich Zeichenfolgen in Zahlen umwandeln? Visual Studio gibt immer als Fehlermeldung folgendes aus:

    Eine implizite Konvertierung von Typ 'int' in 'string' ist nicht möglich.

    Ich möchte gerne eine Prozentzahl ausrechnen, dazu nehme ich 100/wert1*wert2. Ich habe versucht 100 durch eine Zeichenfolge aus Zahlen, die ich aus dem Isolated Storage in einen Textblock geschrieben habe, zu teilen und das Ergebnis mit einer anderen Zeichenfolge aus Zahlen, die ich ebenfalls aus dem Isolated Storage in einen Textblock geschrieben habe zu multiplizieren. Das Endergebnis wollte ich in einen Textblock schreiben.

     Ü1.Text = 100 / Convert.ToInt32(Wertü1.Text) * Convert.ToInt32(Wertü2.Text);

    Danke schon mal im voraus für eure Antworten.

    MfG Ced14


    Ced

    Sonntag, 8. Februar 2015 18:58

Antworten

Alle Antworten

  • Hi Ced,

    probiere mal dies

    Ü1.Text  = (100 / Convert.ToInt32("2") * Convert.ToInt32("5")).ToString();

    Gruß


    Jens Gerber

    Sonntag, 8. Februar 2015 19:13
  • hallo Jens,

    vielen Dank für deine Antwort.;)


    Ced

    Sonntag, 8. Februar 2015 19:28
  • Hallo,

    Ich habe jetzt folgenden Code verwendet:

    Ü1.Text = ((100 / Convert.ToInt32(Wertü1.Text)) * Convert.ToInt32(Wertü2.Text)+"%").ToString();

    wenn ich jetzt für Wertü1 80 und für Wertü2 80 einsetze, kommen am Schluss 80% heraus, wenn ich für Wertü1 700 und für Wertü2 80 einsetze kommen am Schluss 0% heraus. Bei dem ganzen kann man die verschiedensten Werte für die beiden Textblöcke verwenden. Wieso verrechnet sich das Programm jetzt immer?

    MfG Ced14


    Ced

    Montag, 9. Februar 2015 17:08
  • Hi Ced,

    du Rechnest mit ganzen Zahlen. Dabei wird aus 100/80 = 1 und 1* 80 = 80. Du musst double verwenden wenn du eine höhere Genauigkeit brauchst. Rundungsfehler wirst du aber immer haben. 

    MFG

    Björn

    Montag, 9. Februar 2015 17:22
  • Hallo Björn,

    Danke erst einmal, aber entschuldigung, ich habe bis jetzt noch nicht sehr viel mit Gleichungen in meinen Programmen gearbeitet. Wie kann ich da jetzt ein double hereinbringen?

    MfG Ced14


    Ced

    Montag, 9. Februar 2015 17:45
  • Hallo,

    deine neue Funktion müsste wohl so aussehen:

    string a = "80";
    string b = "1";
    
    double ad = double.Parse(a); //Ist quasi wie Convert.To...
    double bd = double.Parse(b);
    
    double result = ((100 / a) * b); //Ergebnis als Zahl
    string s_result = result.ToString(); //Ergebnis als String
    
    /*
       Ich habe die einzelenne Schritte mal aufgeschlüsselt, um es übersichtlicher zu machen.
       Der Compiler optimiert sowieso alles besser, von daher, keine Sorgen ;)
    */


    © 2015 Thomas Roskop

    Germany // Deutschland

    Montag, 9. Februar 2015 17:56
  • Hallo Thomas,

    Dankeschön für deine Antwort. Ich habe jetzt aus dem Convert.ToInt32(...) folgende Zeile gemacht.

    Ü1.Text = ((100 / double.Parse(Wertü1.Text)) * double.Parse(Wertü2.Text)+"%").ToString();

    Also insgesamt vielen dank an euch beide Thomas und Björn.

    MfG Ced14

     

    Ced

    Montag, 9. Februar 2015 18:06
  • Hallo Ced14,

    es freut mich, dass dein Code jetzt funktioniert.

    Könntest du bitte alle Threads, die dir geholfen haben, als Antworten markieren, damit die anderen wissen, dass hier eine Lösung gefunden wurde. Das ist eine der Ideen dieses Forums ;)

    Wenn eine Antwort dir nicht geholfen hat, aber trotzdem gut war, kannst du auch für diese Abstimmen (links neben dem grauen Feld mit der weißen Sprechblase neben einer Thread-Antwort).

    Danke.


    © 2015 Thomas Roskop

    Germany // Deutschland

    Montag, 9. Februar 2015 18:14