Konvertierung von int zu string

  • C#

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Konvertierung von int zu string

    Hallo,

    ich baue zurzeit einen ganz einfachen BMI-Rechner, der am Ende nach dem BMI-Wert eine Klassifizierungen durchführen soll.
    Der User soll dabei die Eingaben von : Körpergewicht und Körpergröße machen, die dann in zwei verschiedene Variablen gespeichert werden.
    Jetzt ist mein Problem, dass ich gerne einfach mal die eingegeben bzw. gespeicherten Variablen anzeigen lassen möchte. Aber da kommt jetzt Konvertierung von int zu String nicht möglich. Aber ich weiß nicht, wie ich das am besten Lösen kann.


    C#-Quellcode

    1. class Program : BMI
    2. {
    3. static void Main()
    4. {
    5. Console.WriteLine("Geben Sie Körpergewicht ein: ");
    6. int bodyWeight = Console.Read();
    7. bodyWeight.ToString();
    8. Console.WriteLine("Geben Sie Ihre Körpergröße in cm ein: ");
    9. int bodyHeight = Console.Read();
    10. bodyHeight.ToString();
    11. Console.WriteLine(bodyWeight, bodyHeight);
    12. // Console.WriteLine("Ihre Eingaben: Körpergröße: {0} Körpergewicht: {1}", bodyHeight, bodyWeight);
    13. Console.ReadKey();
    14. }
    15. }
    16. class BMI
    17. {
    18. int BMIformula;
    19. int bodyWeight;
    20. int bodyHeight;
    21. void BMIcalculator(int bodyWeight, int bodyHeight)
    22. {
    23. BMIformula = bodyWeight / bodyHeight * bodyHeight;
    24. Console.WriteLine(BMIformula);
    25. }
    26. void BMIranking(int bodyWeight, int bodyHeight)
    27. {
    28. if (BMIformula <= 20)
    29. {
    30. Console.WriteLine("Du bist im Untergewicht!");
    31. }
    32. else if (BMIformula >= 20 && BMIformula<=25)
    33. {
    34. Console.WriteLine("Du bist im Normalgewicht");
    35. }
    36. else if (BMIformula >= 25 && BMIformula <= 30)
    37. {
    38. Console.WriteLine("Du bist Übergewichtig");
    39. }
    40. else if (BMIformula >= 30 && BMIformula <= 40)
    41. {
    42. Console.WriteLine("Du hast Adipositas");
    43. }
    44. else
    45. {
    46. Console.WriteLine("Du hast Massive Adipositas");
    47. }
    48. }
    49. }
    Mit Freundlichen Grüßen
    AtomiX

    AtomiX schrieb:

    Aber da kommt jetzt Konvertierung von int zu String nicht möglich
    Aber so:

    C#-Quellcode

    1. Console.WriteLine(bodyWeight.ToString(), bodyHeight.ToString());
    2. // oder
    3. Console.WriteLine("{0}, {1}", bodyWeight, bodyHeight)
    Und
    Beim nächsten Mal markierst Du die Fehlerzeile.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @AtomiX str ist eine Abkürzung von string im Sinne von Hungarian Notation, dass also am Namen einer Variable ihren Typ erkennt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Alternativ kannst du auch eine Typ-Konvertierung mit den Convert-Methoden machen. Beim Konvertieren zu String gibt es meistens keine Probleme, weil die meisten Datentypen als Zeichenfolge dargestellt werden können und String auch Null-Werte zulässt. Umgekehrt sieht es dann anders aus, wenn du einen String zu einem Integer-Wert konvertieren willst. Hier empfiehlt es sich eine Prüfroutine, wie beispielsweise:

    VB.NET-Quellcode

    1. Dim intValue As Integer = 0
    2. Dim strValue As String = String.Empty
    3. inValue = 5
    4. strValue = CStr(inValue)
    5. 'oder
    6. strValue = "5"
    7. If Not String.IsNullorWhitespace(strValue) AndAlso isNumeric(strValue)
    8. intValue = CInt(strValue)
    9. End If


    Wenn du kein Problem mit Null-Werten hast, kannst du dir die Prüfunga auf Nullwerte sparen indem du für deine Integer-Variable Nullwerte zulässt. Hierfür gibt es verschiedene Varianten, beispielsweise:

    VB.NET-Quellcode

    1. Dim intValue As Nullable(of Integer) = Nothing


    oder kürzer

    VB.NET-Quellcode

    1. Dim intValue As Integer? = Nothing


    Wie du das schreibst ist letztlich Geschmackssache und jeder Entwickler hat seinen eigenen Stil. Variante 1 ist leserlicher, Variante 2 ist schneller geschrieben. Im Endeffekt machen beide das gleiche.


    Ein Computer wird das tun, was du programmierst - nicht das, was du willst.
    Vielen Dank nochmals für die ganzen Antworten!

    Ich habe auch die ganze Zeit schon folgendes Problem:
    Wenn ich den User dazu auffordere sein Körpergewicht einzugeben, ist alles in Ordnung. Aber wenn er die Körpergröße eingibt, steht da schon ein bestimmter Wer immer, der gar nicht eingetragen wurde...
    Außerdem sobald ich für die Körpergröße drei Ziffern eingeben möchte schließt sich die Konsole direkt. Was kann ich denn benutzen, damit die Konsole nicht sofort geschlossen wird? Außer

    C#-Quellcode

    1. Console.ReadKey();



    EDIT: Mir wird übrigens in der Konsole auch nicht angezeigt, Eingabe nach Texteingabe schließen oder so (siehe Bild)
    Mir ist gerade auch nochmal aufgefallen, wenn ich in der Konsole bei Körpergewicht: 1 eingebe, steht bei Körpergröße 49. Wenn ich bei Körpergewicht 2 eingebe, kommt bei Körpergröße 50. Wenn ich bei Körpergewicht 3 eingebe, kommt bei Körpergröße 51, usw...

    Aktueller Code:

    C#-Quellcode

    1. class Program : BMI
    2. {
    3. static void Main()
    4. {
    5. Console.WriteLine("Geben Sie Körpergewicht ein: ");
    6. int bodyWeight = Console.Read();
    7. Console.WriteLine("Geben Sie Ihre Körpergröße in cm ein: ");
    8. int bodyHeight = Console.Read();
    9. Console.WriteLine(bodyWeight.ToString(), bodyHeight.ToString());
    10. // Console.WriteLine("Ihre Eingaben: Körpergröße: {0} Körpergewicht: {1}", bodyHeight, bodyWeight);
    11. Console.ReadKey();
    12. }
    13. }
    14. class BMI
    15. {
    16. int BMIformula;
    17. int bodyWeight;
    18. int bodyHeight;
    19. void BMIcalculator(int bodyWeight, int bodyHeight)
    20. {
    21. BMIformula = bodyWeight / bodyHeight * bodyHeight;
    22. Console.WriteLine(BMIformula);
    23. }
    24. void BMIranking(int bodyWeight, int bodyHeight)
    25. {
    26. if (BMIformula <= 20)
    27. {
    28. Console.WriteLine("Du bist im Untergewicht!");
    29. }
    30. else if (BMIformula >= 20 && BMIformula<=25)
    31. {
    32. Console.WriteLine("Du bist im Normalgewicht");
    33. }
    34. else if (BMIformula >= 25 && BMIformula <= 30)
    35. {
    36. Console.WriteLine("Du bist Übergewichtig");
    37. }
    38. else if (BMIformula >= 30 && BMIformula <= 40)
    39. {
    40. Console.WriteLine("Du hast Adipositas");
    41. }
    42. else
    43. {
    44. Console.WriteLine("Du hast Massive Adipositas");
    45. }
    46. }
    47. }


    *Textfarbe editiert - Rot ist der Moderation vorbehalten* ~NoFear23m
    Bilder
    • 90c8f61c1c915800ec4572eae0463b00.png

      5,29 kB, 961×469, 132 mal angesehen
    Mit Freundlichen Grüßen
    AtomiX

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Nofear23m“ ()

    Versuchs mal irgendwie so

    C#-Quellcode

    1. ​Console.WriteLine("Geben Sie Körpergewicht ein: ");
    2. int bodyWeight = Convert.ToInt32(Console.ReadLine());
    3. Console.WriteLine("Geben Sie Ihre Körpergröße in cm ein: ");
    4. int bodyHeight = Convert.ToInt32(Console.ReadLine());
    5. Console.WriteLine(bodyWeight.ToString(), bodyHeight.ToString());
    6. // Console.WriteLine("Ihre Eingaben: Körpergröße: {0} Körperg
    7. Console.ReadLine();


    Freundliche Grüsse

    exc-jdbi
    Console.ReadLine() ist Console.Read() vorzuziehen. Sagt auch Microsoft.

    docs.microsoft.com/de-de/dotnet/api/system.console.read
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ich würde hier noch aufpassen und TryParse verwenden, sonst sind Laufzeitfehler vorprogrammiert.

    C#-Quellcode

    1. static void Main()
    2. {
    3. int bodyweight = 0;
    4. int bodyheight = 0;
    5. while (true)
    6. {
    7. Console.WriteLine("Geben Sie Körpergewicht ein: ");
    8. if(!int.TryParse(Console.ReadLine(), out bodyweight))
    9. {
    10. Console.WriteLine("Ungültige Eingabe!");
    11. continue;
    12. }
    13. Console.WriteLine("Geben Sie Ihre Körpergröße in cm ein: ");
    14. if(!int.TryParse(Console.ReadLine(), out bodyheight))
    15. {
    16. Console.WriteLine("Ungültige Eingabe!");
    17. continue;
    18. }
    19. Console.WriteLine(bodyweight.ToString(), bodyheight.ToString());
    20. break;
    21. }
    22. }
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Ok. Vielen Dank für die Hilfe, jetzt geht alles erstmal wieder.

    VB1963 schrieb:

    Schaue dir zu dieser Methode auch einmal alle Überladungen an. Da kann man schön formatieren...

    In wie fern sind Überladungen gemeint? Aber ist doch ToString() gemeint, nh?
    Ist mit Überladungen das hier gemeint? : docs.microsoft.com/de-de/dotne…mat?view=netframework-4.8
    Mit Freundlichen Grüßen
    AtomiX
    Eine simple Erklärung, was 'Überladung' ist, findste hier: Grundlagen: Fachbegriffe
    Zum 'Anschauen' von irgendetwas gibts verschiedene Möglichkeiten:
    • Intellisense (sehr eingeschränkt)
    • Google - und da die MSDN-Treffer
    • ObjectBrowser
    • weitere...
    ObjectBrowser ist my Favorite, weil kompakt, schnell und eindeutig.
    Hinweise zum Umgang damit findste hier: VisualStudio richtig nutzen (Google ist nicht deine Mami)