Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Zufalls Nachkomma Zahlen
theSonGoku - Sa 03.10.09 17:24
Titel: Zufalls Nachkomma Zahlen
Hallo,
unzwar möchte ich, in einem Array, Zufallszahlen zwischen 0 und 10 generieren.
Z.B:
Quelltext
1: 2: 3:
| 1,00121 0,24121 8,21480 |
Also eben Nachkommerzahlen zwischen 0 und 10.
Ich bekomme auch Zufallszahlen. Aber keine Nachkommazahlen. Wie mache ich das? Mein Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm1.btn_generierenClick(Sender: TObject); var werte: array[0..4, 0..1] of extended; i, k: integer; begin randomize; for i := 0 to 4 do begin werte[i,0] := randomrange(0, 10); end;
for k := 0 to 4 do begin werte[k,1] := randomrange(0, 30); end;
lbl_1.Caption := FloatToStr(werte[0,0]) + ' * ' + FloatToStr(werte[0,1]); lbl_2.Caption := FloatToStr(werte[1,0]) + ' * ' + FloatToStr(werte[1,1]); lbl_3.Caption := FloatToStr(werte[2,0]) + ' * ' + FloatToStr(werte[2,1]); lbl_4.Caption := FloatToStr(werte[3,0]) + ' * ' + FloatToStr(werte[3,1]); lbl_5.Caption := FloatToStr(werte[4,0]) + ' * ' + FloatToStr(werte[4,1]); end; |
mfG
theSonGoku
Moderiert von
Narses: Delphi-Tags hinzugefügt
jakobwenzel - Sa 03.10.09 17:59
Random ohne Parameter liefert Kommazahlen zwischen 0 und 1, das mit 10 multipliziert ist das was du willst.
platzwart - Sa 03.10.09 18:02
Delphi-Quelltext
1:
| zahl:= random(99999)/10000; |
Moderiert von
Narses: Delphi-Tags hinzugefügt
theSonGoku - Sa 03.10.09 20:51
platzwart hat folgendes geschrieben : |
| zahl:= random(99999)/10000; |
Danke für die Antwort. :)
Funktioniert prima. :)
Kannst du mir allerdings erklären, wieso du 99999 und 10000 geschrieben hast?
Was haben die Zahlen zu bedeuten?
mfG
theSonGoku
platzwart - Sa 03.10.09 21:31
random(99999) erzeugt eine ganzzahlige Zufallszahl zwischen 0 und 99999. Weil der Wert nun aber kleiner 10 und größer gleich Null sein soll, wird der Wert durch 10000 geteilt ;)
Kha - Sa 03.10.09 22:53
platzwart hat folgendes geschrieben : |
| random(99999) erzeugt eine ganzzahlige Zufallszahl zwischen 0 und 99999. |
Nope, zwischen 0 und 99998 - ein großer Unterschied :D .
platzwart hat folgendes geschrieben : |
| Weil der Wert nun aber kleiner 10 und größer gleich Null sein soll[...] |
Weshalb die untere Schranke ein-, aber die obere einschließen :nixweiss: ?
Anstatt deinen Code zu korrigieren, wäre es mir allerdings lieber, wenn wir uns darauf einigen könnten, dass
jakobwenzels Vorschlag eindeutig der bessere ist :zwinker: .
platzwart - So 04.10.09 11:53
Nein, der funktioniert so nicht. Der liefert nämlich keine Zahl mit 5 Nachkommastellen ;) Aber dessen Ansatz ein wenig überarbeitet wäre sicherlich die beste Lösung ;)
BenBE - So 04.10.09 23:41
Von 5 Nachkommastellen hattest du oben nichts geschrieben ... Von daher ist Jakobs Vorschlag durchaus valide ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!