[Delphi]Losowanie liczb zmiennoprzeciwnkowych


(Mr Hektor) #1

Głowie się i głowie i nic nie mogę wykombinować w tym Turbo Delphi. Jak wylosować powiedzmy liczbę 1.24 z przedziału 0-1 ? Szukałem w google.

Edit

Dobra wymyśliłem coś takiego, losuje jak trzeba. Teraz moje pytanie brzmi jak sformatować tą wylosowaną liczbę do 2 miejsc po przecinku ?

var

tab : array[0..300] of single;

i : integer;

x : integer;

begin

randomize();

for i := 1 to 199 do

tab[i] := i / 100;

Label1.Caption := FloatToStr(tab[random(200)]);

end;

(Drobok) #2

random mod n, gdzie n jest końcem przedziału z którego chcesz losować :slight_smile:


(Grzelix) #3

O ile znam się na matematykę to liczba 1.24 nie należy do przedziału 0-1.

Poniżej masz link jak można wylosować liczbę zmiennoprzecinkową z przedziału 0-1.

http://logicalgenetics.com/showarticle.php?topic_id=893

jak chcesz z przedział 1-2 to dodaj 1 do wylosowanej liczby .

Jak z przedziału 0-2 to podziel przez połowę zakresu a nie całość jak podano w przykładzie.

itd. w zależności co chcesz otrzymać.

EDIT

wyświetlanie float z odpowiednią precyzją

http://www.sixca.com/delphi/article/printfloat.html


(Mr Hektor) #4

Masz racje chodziło oczywiście o przedział 0-2 :smiley: Dobra, ale teraz jak skrócić tą wylosowaną liczbę do 2 miejsc po przecinku ?

Nieważne, już mam ; ) Dzięki Wam. I zmieściłem się ze wszystkim w 1 linijce a nie w 362 :x