welchen Typ liefert mir die Random-Funktion?
-
Hallo Leute,
ich habe in anderen Sprachen ja schon viel mit Zufallszahlen herumgespielt, aber ich checke einfach nicht, wie die random-Funktion in C# verwendet wird!
Für Leute, die mich wieder auf die Suchefunktion des Forums verweisen wollen:
Ich habe sie benutzt mit *zufall* in allen Foren und es kommen ganz viele Threads hoch, aber eine Antwort auf meine Frage geben sie nicht.Frage1:
Welchen Datatype liefert random?
In welchem Bereich liegen die Zahlen? Bei Pascal oder Basic liefert die Funktion irrationale Zahlen im Bereich 0 <= r < 1.
In der Hilfe von Visual C# findet man nichts.Frage 2:
Wenn ich in meinem Code schreibe:byte r;
r = (byte) random;
oder
r = (byte) random();sagt er immer, dass Random ein Typ ist, der aber wie eine normale Variable verwendet! Was mein er damit?
Wenn ich mal wissen will, was random eigentlich für Zahlen liefert, dann mach ich doch mal:
Frage 3:
float zz;
zz=random();Da dürfte es doch keine Typverträglichkeitsprobleme haben, oder?
Aber erst mal kommt die gleiche Fehlermeldung!:
Random ist ein Typ, der aber wie eine normale Variable verwendet!Frage 4:
Bei meinem Versuch mit Zufallszahlen zu arbeiten, bin ich gleich mal auf diverse Konvertierungsprobleme gestoßen!z.B. geht auch nicht:
float zz = 1.23456;
Warum es nicht geht, ist mir jetzt klar geworden1.23456 scheint als "Double" interpretiert zu werden und Double ist nun mal größer als Float.
double zz = 1.23456; geht ja wirklich mal!
nun zur Frage 4:
Die Fehlermeldung dazu lautet:
Fehler 1 Literale vom Typ "Double" können nicht implizit in den Typ "float" konvertiert werden. Verwenden Sie ein F-Suffix, um ein Literal mit diesem Typ zu erstellen. D:\Dokumente\Visual_C#\Projects\Viele_Tests\Viele_Tests\Form1.cs 45 18 Viele_TestsWas ist denn ein F-Suffix?
Fragen über Fragen! Und das alles nur, weil ich eine lumpige Zufallszahl zwischen 0<= z < 256 erzeugen wollte!
Danke für Eure Hilfe!
Gruß,
Micha
-
Einen zufallswert bekommst du so raus:
Random r = new Random(); int value = r.Next();
sagt er immer, dass Random ein Typ ist, der aber wie eine normale Variable verwendet! Was mein er damit?
Das bedeutet das Random eine Klasse ist, von der erst eine Instanz erzeugt werden muss.
Es gibt mehrere Typen die Random zurückliefern kann.
es gibt :
int i = r.Next(); byte[] buffer = new byte[256]; r.NextBytes(buffer); double d = r.NextDouble();
Zu Frage 4:
Das F-Suffix ist das hier:float zz = 1.23456F;
Noch einen Tip:
Wenn du Visual Studio (Express) verwendest und die MSDN mit installiert hast, markieren den Fehler und drücke F1 Da sind öfters Lösungen erklärt wie man die Fehler löst.