Feedback

C# - Alternatives Runden

Veröffentlicht von am 03.12.2014
(0 Bewertungen)
Mit dieser Funktion kann ein double alternativ gerundet werden, sodass bspw. erst ab 7 aufgerundet wird.
Zahl ist die zu rundende Zahl
Stelle gibt an, auf welche Stelle hinter (>=1) oder vor (<=0) dem Komma gerundet werden soll.
startUp gibt an, ab wann aufgerundet werden soll.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

public static double RoundAt(double Zahl, int Stelle, int startUp)
        {
            double Up = Math.Abs(Zahl) * Math.Pow(10, Stelle);
            double temp = Up;
            double Out;
            while (Up > 0)
            {
                Up--;
            }
            Out = temp - Up;                           //Aufrunden
            if (Up < (Convert.ToDouble(startUp) - 10) / 10)
            { Out = temp - Up - 1; }                   //Abrunden
            if (Zahl < 0)
            { Out *= -1; }
            Out /= Math.Pow(10, Stelle);
            return Out;
        }
Abgelegt unter double, Runden.

2 Kommentare zum Snippet

Koopakiller schrieb am 05.12.2014:
Wenn ich dein Snippet richtig interpretiere, dann veränderst du den Punkt, ab dem auf- bzw. abgerundet wird. Bei RoundAt(*, 1, 7) würde also alles ab *.7 aufgerundet werden, alles andere wird abgerundet.
Richtig?

Wenn ich dem Stelle-Parameter 0 übergebe, würde ich erwarten ganze Zahlen (1,2,3,4,...) zu erhalten. Ich erhalte aber auf 10er gerundete.
Fuzzi59 schrieb am 05.12.2014:
Stimmt, es lag an der Kommaverschiebung das -1 musste weg damit es funktioniert.
Außerdem konnten keine negativen Zahlen richtig gerundet werden.
Hatte es aus der alten Datei kopiert, ist jetzt aber richtig.
 

Logge dich ein, um hier zu kommentieren!