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);
}
Alte URL:
/snippet/zufaelliges-double/1669
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
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 🙁