Feedback

Zufälliges Double

Sprache: C#

2 zusätzliche Überschreibungen für Random.NextDouble() um einfacher eine Zahl zwischen 2 Werten zu ermitteln.
        /// <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);
        }
        /// <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);
        }

2 Kommentare

  1. Hi Koopakiller,

    hast du den Code eigentlich einmal getestet. Die zweite Funktion macht nämlich keineswegs das, was sie soll.
    Korrekt wäre:
    [code]
    public static double NextDouble(this Random rnd, double minValue, double maxValue)
    {
    if (minValue > maxValue)
    throw new ArgumentOutOfRangeException(„maxValue“);
    return (rnd.NextDouble() * (maxValue – minValue)+minValue);
    }[/code]

    Gruß Gwinn

  2. 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 🙁