Feedback

C# - Zufälliges Double

Veröffentlicht von am 25.01.2013
(0 Bewertungen)
2 zusätzliche Überschreibungen für Random.NextDouble() um einfacher eine Zahl zwischen 2 Werten zu ermitteln.
Snippet in VB übersetzen
        /// <summary>
        /// Gibt eine Zufallszahl zwischen 0 und max zurück.
        /// </summary>
        /// <param name="rnd">Das zu verwendende System.Random-Objekt.</param>
        /// <param name="maxValue">Der Maximalwert der Zufallszahl.</param>
        /// <returns>Eine zufällige Zahl zwischen 0 und max.</returns>
        public static double NextDouble(this Random rnd, double maxValue)
        {
            if (0 > maxValue)
                throw new ArgumentOutOfRangeException("maxValue");
            return rnd.NextDouble() * maxValue;
        }
        /// <summary>
        /// Gibt eine Zufallszahl zwischen min und max zurück.
        /// </summary>
        /// <param name="rnd">Das zu verwendende System.Random-Objekt.</param>
        /// <param name="minValue">Der Minimalwert der Zufallszahl.</param>
        /// <param name="maxValue">Der Maximalwert der Zufallszahl.</param>
        /// <returns>Eine zufällige Zahl zwischen min und max.</returns>
        public static double NextDouble(this Random rnd, double minValue, double maxValue)
        {
            if (minValue > maxValue)
                throw new ArgumentOutOfRangeException("maxValue");
            return (rnd.NextDouble() * (maxValue - minValue) + minValue);
        }
Abgelegt unter Random, Double, Zufall, Minimum, Maximum.

2 Kommentare zum Snippet

Gwinn schrieb am 30.01.2013:
Hi Koopakiller,

hast du den Code eigentlich einmal getestet. Die zweite Funktion macht nämlich keineswegs das, was sie soll.
Korrekt wäre:

public static double NextDouble(this Random rnd, double minValue, double maxValue)
{
if (minValue > maxValue)
throw new ArgumentOutOfRangeException("maxValue");
return (rnd.NextDouble() * (maxValue - minValue)+minValue);
}


Gruß Gwinn
Koopakiller schrieb am 02.02.2013:
Danke für den Hinweis :)
Ich weiß nicht wie mir der Fehler unterlaufen konnte....
Werde es gleich korrigieren

PS: Die 1. Methode habe ich glaube getestet, die 2. nicht :(
 

Logge dich ein, um hier zu kommentieren!