Generieren Sie einen zufälligen Float in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Generieren Sie einen zufälligen Float zwischen 0 und 1 mit der Funktion Random.NextDouble() in C#
  2. Generieren Sie einen zufälligen Float ohne Bereich mit der Funktion Random.NextDouble() in C#
  3. Generieren Sie einen zufälligen Float innerhalb eines bestimmten Bereichs mit der Funktion Random.NextDouble() in C#
  4. Generieren Sie einen zufälligen Float mit der Funktion Random.NextBytes() in C#
Generieren Sie einen zufälligen Float in C#

In diesem Tutorial werden Methoden zum Generieren eines zufälligen Float-Werts in C# erläutert.

Generieren Sie einen zufälligen Float zwischen 0 und 1 mit der Funktion Random.NextDouble() in C#

Leider gibt es keine integrierte Methode zum Generieren einer Zufallszahl in C#. Um dieses Ziel zu erreichen, müssen wir uns auf einige benutzerdefinierte Methoden verlassen. Mit der Funktion Random.NextDouble() wird ein zufälliger Doppelwert zwischen 0 und 1 generiert. Mit dieser Funktion können wir einen zufälligen Doppelwert zwischen 0 und 1 generieren und diesen zufälligen Wert dann in einen Float eingeben. Das folgende Codebeispiel zeigt uns, wie wir mit der Funktion Random.NextDouble() in C# einen zufälligen Gleitkommawert zwischen 0 und 1 erzeugen können.

using System;

namespace random_float {
  class Program {
    static void Main(string[] args) {
      Random rand = new Random();
      for (int i = 0; i < 10; i++) {
        float randomFloat = (float)rand.NextDouble();
        Console.WriteLine("Random Float = {0}", randomFloat);
      }
    }
  }
}

Ausgabe:

Random Float = 0.3914659
Random Float = 0.8927528
Random Float = 0.6579643
Random Float = 0.4404075
Random Float = 0.3213561
Random Float = 0.3399849
Random Float = 0.04562188
Random Float = 0.1881405
Random Float = 0.7638124
Random Float = 0.1645804

Mit der Funktion Random.NextDouble() in C# haben wir einen zufälligen Gleitkommawert zwischen 0 und 1 generiert. Wir haben zuerst einen zufälligen Doppelwert zwischen 0 und 1 generiert und diesen Doppelwert dann mithilfe von Typumwandlung in einen Gleitkommawert umgewandelt.

Generieren Sie einen zufälligen Float ohne Bereich mit der Funktion Random.NextDouble() in C#

Mit der Funktion Random.NextDouble() in C# können wir auch einen zufälligen Gleitkommawert generieren, ohne den Bereich zwischen 0 und 1 einzustellen. Der einzige Bereich bei dieser Methode ist der Wertebereich, den der Float-Datentyp enthalten kann. Wir können float.MaxValue und float.MinValue verwenden, um die Maximal- und Minimalwerte anzugeben, die der Float-Datentyp speichern kann. Das folgende Codebeispiel zeigt, wie Sie mit der Funktion Random.NextDouble() in C# einen zufälligen Gleitkommawert generieren, ohne einen Bereich anzugeben.

using System;

namespace random_float {
  class Program {
    static void Main(string[] args) {
      Random rand = new Random();
      double range = (double)float.MaxValue - (double)float.MinValue;
      for (int i = 0; i < 10; i++) {
        double sample = rand.NextDouble();
        double scaled = (sample * range) + float.MinValue;
        float f = (float)scaled;
        Console.WriteLine(f);
      }
    }
  }
}

Ausgabe:

1.500952E+38
-1.930891E+38
2.951987E+38
-1.205054E+38
-6.225039E+37
3.843309E+36
-1.241292E+38
1.360907E+38
1.769061E+38
-1.577001E+38

Mit der Funktion Random.NextDouble() in C# haben wir einen zufälligen Float-Wert ohne Bereich generiert. Wir haben die Doppelvariable range mit float.MaxValue - float.MinValue initialisiert und dann in den doppelten Datentyp typisiert. Dadurch wird sichergestellt, dass der Zufallswertbereich innerhalb des Wertebereichs bleibt, den ein Float-Datentyp verarbeiten kann. Wir haben den Zufallswert berechnet, indem wir den von der Funktion Random.NextDouble() zurückgegebenen Wert mit dem Bereich multipliziert und dem Ergebnis float.MinValue hinzugefügt haben. Am Ende haben wir den Zufallswert mit Typecasting in den Float-Datentyp konvertiert.

Generieren Sie einen zufälligen Float innerhalb eines bestimmten Bereichs mit der Funktion Random.NextDouble() in C#

Mit der Funktion Random.NextDouble() in C# können wir auch einen Zufallswert innerhalb eines bestimmten Bereichs generieren. Angenommen, wir müssen einen zufälligen Gleitkommawert zwischen 1 und 10 generieren. In diesem Fall können wir mit der Funktion Random.NextDouble() einen Zufallswert zwischen 0 und 1 erzeugen, mit dem Bereich multiplizieren und dann den Minimalwert hinzufügen. Das folgende Codebeispiel zeigt, wie mit der Funktion Random.NextDouble() in C# eine Zufallszahl zwischen einem bestimmten Bereich generiert wird.

using System;

namespace random_float {
  class Program {
    static void Main(string[] args) {
      Random rand = new Random();
      double min = 1;
      double max = 10;
      double range = max - min;
      for (int i = 0; i < 10; i++) {
        double sample = rand.NextDouble();
        double scaled = (sample * range) + min;
        float f = (float)scaled;
        Console.WriteLine(f);
      }
    }
  }
}

Ausgabe:

3.468961
8.04868
2.210197
8.150612
4.217263
5.328617
4.730082
8.462176
2.679844
8.609394

Mit der Funktion Random.NextDouble() in C# haben wir einen zufälligen Gleitkommawert zwischen 1 und 10 generiert. Wir haben die Werte min und max angegeben und den Bereich mit Bereich = max - min berechnet. Wir haben den Zufallswert berechnet, indem wir den von der Funktion Random.NextDouble() zurückgegebenen Wert mit dem Bereich multipliziert und dem Ergebnis min hinzugefügt haben. Am Ende haben wir den Zufallswert mit Typecasting in den Float-Datentyp konvertiert.

Generieren Sie einen zufälligen Float mit der Funktion Random.NextBytes() in C#

Wir können auch einen zufälligen Gleitkommawert mit der Funktion Random.NextBytes() in C# generieren. Mit der Funktion Random.NextBytes(byte[]) wird das Array byte[] mit zufälligen Bytewerten gefüllt. Wir können zufällige Float-Werte generieren, indem wir die in byte[] gespeicherten Bytes in den Float-Datentyp konvertieren. Das folgende Codebeispiel zeigt uns, wie wir mit der Funktion Random.NextBytes() in C# einen zufälligen Gleitkommawert generieren können.

using System;

namespace random_float {
  class Program {
    static void Main(string[] args) {
      Random rand = new Random();
      for (int i = 0; i < 10; i++) {
        var array = new byte[4];
        rand.NextBytes(array);
        float randomFloat = BitConverter.ToSingle(array, 0);
        Console.WriteLine("Random Value = {0}", randomFloat);
      }
    }
  }
}

Ausgabe:

Random Value = 2.021232E-20
Random Value = -121623
Random Value = -1.564382E+38
Random Value = 1.146448E-14
Random Value = -6.874067E-22
Random Value = -1.226989E+31
Random Value = -3.01435E+08
Random Value = -8.568415E+30
Random Value = -1.454825E+27
Random Value = 3.801608E-26

Wir haben einen zufälligen Float-Wert mit der Funktion Random.NextBytes() in C# generiert. Wir haben das Array array mit zufälligen Bytewerten mit der Funktion Random.NextBytes() gefüllt. Wir haben die Bytewerte mit der Funktion BitConverter.ToSingle() in float umgewandelt.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Csharp Float