Neuling braucht Hilfe bei C#

#1
Hallo,

ich studiere seit 1 Woche Informatik und hatte bisher 1 Vorlesung im Programmieren.
Nach dieser Vorlesung dachte ich, dass ich alles an Wissen habe, um eine einfache Verkaufskalkulation zu programmieren.
Soweit ganz gut nur stehe ich gerade vor diesem Fehler: "die Eingabezeichenfolge hat das falsche Format"

C#:
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            decimal FM, MGK1, MGK2, MK;                     //Daten für die Berechnung Materialgemeinkosten. MGK1 bezeichnet die Prozent, welche eingegeben werden, und MGK2 das was zu FM addiert wird.
           
            Console.WriteLine("Bitte die Höhe des Fertigungsmaterials angeben. Nachkommazaheln bitte mit einem Komma trennen.");
            string FMstring = Console.ReadLine();
            FM = Convert.ToDecimal(FMstring);

            Console.WriteLine("Bitte die Höhe der Materialgemeinkosten in Prozent, aber ohne Prozentzeichen, angeben.");
            string MGK1string = Console.ReadLine();
            MGK1 = Convert.ToDecimal(MGK1string);

            MGK2 = (FM / 100)*MGK1;

            MK = FM + MGK2;
            Console.WriteLine("Materialkosten =" + MK);
            Console.ReadLine();

            decimal FL, FGK1, FGK2, FK;                    //Wie bei MGK
            Console.WriteLine("Bitte die Höhe der Fertigungslöhne angeben.");
            string FLstring = Console.ReadLine();
            FL = Convert.ToDecimal(FLstring);

            Console.WriteLine("Bitte die Höhe der Fertigungsgemeinkosten in Prozent, ohne Prozentzeichen, angeben.");
            string FGK1string = Console.ReadLine();
            FGK1 = Convert.ToDecimal(FGK1string);

            FGK2 = (FL / 100)*FGK1;

            FK = FL + FGK2;    
            Console.WriteLine("Fertigungskosten=" + FK);
            Console.ReadLine();

            decimal HK;                                    //Berechnung der Herstellkosten
            HK = FK + MK;
            Console.WriteLine("Herstellkosten=" + HK);

            decimal VWGK1, VWGK2, VtGK1, VtGK2;           //Siehe MGK
            Console.WriteLine("Bitte die Höhe der Verwaltungsgemeinkosten in Prozent angeben, ohne Prozentzeichen.");
            string VWGK1string = Console.ReadLine();
            VWGK1 = Convert.ToDecimal(VWGK1string);         //Double in etwas höheres umwandeln!
            VWGK2 = (HK / 100) * VWGK1;

            Console.WriteLine("Bitte die Höhe der Vertriebsgemeinkosten in Prozent angeben, ohne Prozentzeichen.");
            string VtGK1string = Console.ReadLine();
            VtGK1 = Convert.ToDecimal(VtGK1string);
            VtGK2 = (HK / 100) * VtGK1;

            decimal SK;
            SK = HK + VtGK2 + VWGK2;
            Console.WriteLine("Selbstkosten=" + SK);



        }
    }
}
Leider weiß ich nicht, was ich hier jetzt tun soll :)
Würdet ihr einer neugierigen, angehenden Informatikerin helfen?

LG Disglin

PS: Die Werte mit denen ich rechne sind im Anhang :)
 

Anhänge

dominikb

Well-Known Member
#2
Hi,

wenn ich alle Werte wie in deinem angehängten Beispiel eingebe, funktionieren alle Berechnungen und die Selbstkosten werden ausgegeben.



Hast du vielleicht einen nicht-numerischen Wert eingegeben? Wenn ich anstelle einer Gleitkommazahl einen String eingebe, fliegt mir nämlich auch eine System.FormatException um die Ohren (ist auch logisch, da du die Eingabe zu decimal konvertierst).
 
#3
nein, ich hab nur die zahlen eingegeben, die dort auch verzeichnet sind. hab es locker 10 mal getestet :(
Probiere es morgen aber erneut.
Evtl klappt es ja dann ^^
 
Oben