none
Wie runde ich eine Zahl auf 2 Dezimalstellen?

    Question

  • Ich bin recht neu in C# und .NET und würde gern wissen, wie man eine Zahl auf 2 Dezimalstellen runden kann:

    2.567 > 2.57
    2.563 > 2.56

    Ich benutze Microsoft Visual C# Express Edition 2010 und Windows 7 Home Premium mit .NET Framework 4 mit allen Updates.

    Saturday, July 14, 2012 10:37 AM

Answers

  • Hallo,

    das machst du am besten mit der Methode Math.Round(d, decimals). Als ersten Parameter übergibst du deine zu rundende Zahl und als 2. Parameter die Anzahl der Decimalstellen. Als Ergebnis bekommst du dann dein gerundetes Ergebnis.


    Koopakiller - http://koopakiller.ko.ohost.de/

    • Marked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    Saturday, July 14, 2012 10:40 AM
    Moderator
  • Hallo TesterA_2:

    ergänzend zu der Antwort von Koopakiller, falls du mit dem
    gerundeten Wert nicht weiter rechnen musst sondern ihn nur ausgeben magst, reicht die Angabe des Zahlenformats

        double d = 1.354345d;
        label1.Text= d.ToString("0.00");

    http://msdn.microsoft.com/de-de/library/0c899ak8(v=vs.80).aspx

    Viele Grüße

    Frederic
    .

    • Marked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    Saturday, July 14, 2012 11:26 AM
  • Mmh, hast du denn auch die entsprechende using-Anweisung für System hinzugefügt? Damit werden sämtliche Klassen im angegebenen Namespace direkt verwendbar, d.h. du musst nicht mehr den gesammten Pfad zur Klasse angeben:

    System.Math.Round(d, dec); 
    wird zu
    Math.Round(d, dec);
    Die using-Anweisung(en) müss(en) die erste(n) Zeilen der CS-Datei sein:
    using System;

    class prgm
    {
    //Einstiegspunkt ins Programm
    static void main(string[] args)
    {
    //Dein restlicher Code...

    Koopakiller - http://koopakiller.ko.ohost.de/

    • Marked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    Saturday, July 14, 2012 11:38 AM
    Moderator

All replies

  • Hallo,

    das machst du am besten mit der Methode Math.Round(d, decimals). Als ersten Parameter übergibst du deine zu rundende Zahl und als 2. Parameter die Anzahl der Decimalstellen. Als Ergebnis bekommst du dann dein gerundetes Ergebnis.


    Koopakiller - http://koopakiller.ko.ohost.de/

    • Marked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    Saturday, July 14, 2012 10:40 AM
    Moderator
  • Hallo TesterA_2:

    ergänzend zu der Antwort von Koopakiller, falls du mit dem
    gerundeten Wert nicht weiter rechnen musst sondern ihn nur ausgeben magst, reicht die Angabe des Zahlenformats

        double d = 1.354345d;
        label1.Text= d.ToString("0.00");

    http://msdn.microsoft.com/de-de/library/0c899ak8(v=vs.80).aspx

    Viele Grüße

    Frederic
    .

    • Marked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    Saturday, July 14, 2012 11:26 AM
  • Danke euch beide für die Antworten. Ich habe aber noch ein Problem:

    Der Compiler sagt mir das "Math" im aktuellen Kontext nicht vorhanden sei. Woran liegt das?

    • Marked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    • Unmarked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    Saturday, July 14, 2012 11:31 AM
  • Mmh, hast du denn auch die entsprechende using-Anweisung für System hinzugefügt? Damit werden sämtliche Klassen im angegebenen Namespace direkt verwendbar, d.h. du musst nicht mehr den gesammten Pfad zur Klasse angeben:

    System.Math.Round(d, dec); 
    wird zu
    Math.Round(d, dec);
    Die using-Anweisung(en) müss(en) die erste(n) Zeilen der CS-Datei sein:
    using System;

    class prgm
    {
    //Einstiegspunkt ins Programm
    static void main(string[] args)
    {
    //Dein restlicher Code...

    Koopakiller - http://koopakiller.ko.ohost.de/

    • Marked as answer by TesterA_2 Saturday, July 14, 2012 11:57 AM
    Saturday, July 14, 2012 11:38 AM
    Moderator
  • Danke dir, Koopakiller, das fehlt mir :-)
    Saturday, July 14, 2012 11:57 AM
  • Zahlen (Wert = 1000000)

    Symbol Typ Aufruf Ergebnis
    c Währung (currency) string.Format("{0:c}",Wert) 1.000.000,00 €
    d Dezimalzahl (decimal) string.Format("{0:d}",Wert) 1000000
    e Wissenschaftlich (scientific) string.Format("{0:e}",Wert) 1,000000e+006
    f Festkommazahl (fixed point) string.Format("{0:f}",Wert) 1000000,00
    g Generisch (general) string.Format("{0:g}",Wert) 1000000
    n Tausender Trennzeichen string.Format("{0:n}",Wert) 1.000.000,00
    x Hexadezimal string.Format("{0:x4}",Wert) f4240

    Zahlen individuell formatieren (Wert = 1000000)

    Symbol Typ Aufruf Ergebnis
    0 0-Platzhalter string.Format("{0:00.0000}",Wert) 1000000,0000
    #

    Zahl-Platzhalter

    string.Format("{0:(#).##}",Wert) (1000000)
    . Dezimalpunkt string.Format("{0:0.0}",Wert) 1000000,0
    , Tausender Trennzeichen string.Format("{0:0,0}",Wert) 1.000.000
    ,.

    Ganzzahliges Vielfaches von 1.000

    string.Format("{0:0,.}",Wert) 1000
    %

    Prozentwert

    string.Format("{0:0%}",Wert) 100000000%
    e Exponenten-Platzhalter string.Format("{0:00e+0}",Wert) 10e+5
    Sunday, July 15, 2012 5:40 PM