Einfache Rechnung durchführen



  • Hallo zusammen,

    ich moechte eine einfache Rechnung durchführen.
    Das ganze schaut so in Excel aus

    Round(2/3*212/309*40+60)
    Wie kann ich das in C# umsetzen?
    Ich habe einiges gesucht, bin aber nicht weiter gekommen, denn wenn ich es so eingebe kommt ein falsches Ergebnis raus.

    Ich verwende Visual Studio 2012 und bin nach eigenem ermessen totaler Anfänger.

    Danke

    Wasserlasser



  • Kommt zufällig 0 raus?
    Dann wäre der / dran schuld.
    http://msdn.microsoft.com/de-de/library/aa691373(v=vs.71).aspx



  • Null kommt raus, wenn ich 2/3 nur berechne.
    Danke für den Link, aber wie rechne ich das ganze nun richtig?

    Gruss

    Wasserlasser



  • Fließkommazahlen statt ints nehmen. Also 2.0/3.0…



  • Kannst Du mir aufschreiben, wie man das schreiben muesste, dass das beim druecken des Buttons dann funktioniert?

    Danke

    Wasserlasser



  • Wie wärs mit

    Round(2.0/3.0 * 212.0/309.0 * 40.0 + 60.0)
    

    ?



  • Keine Ahnung, da kommen nur Fehler

    private void button1_Click(object sender, EventArgs e)
            {
                outcomepre = Round(2.0 / 3.0 * 212.0 / 309.0 * 40.0 + 60.0);
    
                prestigeerg.Text = outcomepre.ToString();
            }
    

    Hier kommt dann zum Beispiel als Ergebnis 60 raus, was auch falsch ist.

    Decimal prestigerechnung;
    
            private void button1_Click(object sender, EventArgs e)
            {
                prestigerechnung = (2 / 3 * 212 / 309 * 40 + 60);
    
                prestigeerg.Text = prestigerechnung.ToString();
            }
    

    Gruss

    Wasserlasser



  • Wie sieht denn deine Round Funktion aus? Was hat outcomepre für einen Datentyp? Was kommen für Fehler?



  • Dein zweites Beispiel ist ja auch wieder falsch. Lies dir dochmal den link von volkard durch!

    Kurzfassung:
    Du musst unterscheiden zwischen Ganzzahlen und Gleitkommazahlen. Ganzzahldivison läuft anders als Gleitkommadivision.

    Ganzzahldivision ist wie Division mit Rest, nur dass der Rest verfällt: 2/3 = 0.
    Gleitkommadivision ist das was du willst, Division mit Nachkommastellen: 2/3 = 0.66666666666...

    Ergo musst du dich entscheiden was du willst, und entsprechende Datentypen wählen. Wenn du Ganzzahlen nimmst bekommst du Ganzzahldivision (die dir hier nicht ganz das liefert was du willst), und wenn du Gleitkommazahlen nimmst bekommst du Gleitkommadivision. 🙂



  • Wie gesagt, ich bin absoluter Neuling und muss erst mal lernen was man wann und wo deklariert.
    Inzwischen bin ich weiter und die Sache funktioniert mal soweit.

    Danke fuer die Hilfe

    Wasserlasser


Log in to reply