Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem mit Zufallspreis ermitteln (https://www.delphipraxis.net/77632-problem-mit-zufallspreis-ermitteln.html)

DoktorD 22. Sep 2006 07:24


Problem mit Zufallspreis ermitteln
 
Hi. Ich versuche zur Zeit ein Programm zu schreiben, welches mir einen Zufallspreis innerhalb einer vorgegebenen Grenze ermittelt. Wichtig daber (und das genau bekomme ich irgendwie nicht hin) soll die Zufallszahl nur in 10 Cent Schritten erzeugt werden (also 1,50 / 1,90 ....)

Hat da jemand eine idee??? Meine Zufallspreise erzeuge ich mir zur Zeit mit

Delphi-Quellcode:
OG := StrToInt(FloatToStr(StrToFloat(maxOG.Text)*10));
UG := StrToInt(FloatToStr(StrToFloat(maxUG.Text)*10));
aktuellerPreis := RandomRange(UG,OG);
aktuellerPreis:= aktuellerPreis / 10;
Label2.Caption:= FloatToStr(aktuellerPreis);
Danke für Eure Antworten im Voraus!!!

Corpsman 22. Sep 2006 07:31

Re: Problem mit Zufallspreis ermitteln
 
Probiers mal mit

Delphi-Quellcode:
Var
  og, ug: Integer;
  aktuellerPreis: integer;
Begin
  OG := StrToInt(FloatToStr(StrToFloat(edit1.Text) * 10));
  UG := StrToInt(FloatToStr(StrToFloat(edit2.Text) * 10));
  aktuellerPreis := Random(OG - ug + 1) + ug;
  Label2.Caption := FloatToStr(aktuellerPreis / 10);
End;

DoktorD 22. Sep 2006 07:56

Re: Problem mit Zufallspreis ermitteln
 
Super, Danke!!!

SirThornberry 22. Sep 2006 08:46

Re: Problem mit Zufallspreis ermitteln
 
Zitat:

Zitat von Corpsman
Probiers mal mit

Delphi-Quellcode:
Var
  og, ug: Integer;
  aktuellerPreis: integer;
Begin
  OG := StrToInt(FloatToStr(StrToFloat(edit1.Text) * 10));
  UG := StrToInt(FloatToStr(StrToFloat(edit2.Text) * 10));
  aktuellerPreis := Random(OG - ug + 1) + ug;
  Label2.Caption := FloatToStr(aktuellerPreis / 10);
End;

also das ganze erst in einen String zu wandeln um dann doch wieder zurück zu Integer zu wandeln ist überflüssig. Einfach gleich den Float in einen String convertieren.
Delphi-Quellcode:
Var
  og, ug: Integer;
  aktuellerPreis: integer;
Begin
  OG := Trunc(StrToFloat(edit1.Text) * 10);
  UG := Trunc(StrToFloat(edit2.Text) * 10);
  aktuellerPreis := Random(OG - ug + 1) + ug;
  Label2.Caption := FloatToStr(aktuellerPreis / 10);
End;

DoktorD 22. Sep 2006 13:42

Re: Problem mit Zufallspreis ermitteln
 
Cool Danke. Das kannte ich auch noch nicht.

Corpsman 22. Sep 2006 17:50

Re: Problem mit Zufallspreis ermitteln
 
@SirThornberry

Ich wollte so nah wie möglich an DotorD 's beispiel bleiben damit der Fehler sichtbar wird den er gemacht hat.

Aber du hast natürlich vollkommen Recht, vor allem aus Performance Gründen ist die Version mit Trunc sehr zu empfehlen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz