| Autor |
Beitrag |
flowstar
      
Beiträge: 123
WinME
D6 Enterprise
|
Verfasst: Di 10.02.04 17:04
Ist wahrscheinlich ne keichte Frage aber hab nichts dazu gefunden:
Wie erstelle zurfaellige ich Kommazahlen mit 2 Kommastellen im bereich von -3 bis+ 3?
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 10.02.04 17:39
_________________ We are, we were and will not be.
|
|
catweasel
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Di 10.02.04 20:28
| Zitat: | x:=Zufallszahl(-300,300);
x:=x/100; |
Das ist die Frage, ob es so einfach ist ...
Wenn es wirklich immer zwei Kommastellen sein sollen wäre
300/100 = 3 , oder 150/300 = 0,5 ungeeignet ...
Da bliebe wohl nur erste Variante (dabei die = "00", "10", "20" etc. per test ausschliessen). Also am besten gleich die nachkommaziffern einzeln erstellen...
Catweasel
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Di 10.02.04 20:53
Hallo
Delphi-Quelltext 1:
| zahl:=(random(601)-300) / 100; |
Mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
catweasel
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Di 10.02.04 23:44
| Zitat: | | zahl:=(random(601)-300) / 100; |
Ähhh...  Hab ich da was verpasst, oder was soll daran so aufregend anders sein ?
Catweasel
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
Alni
      
Beiträge: 205
Win 2000, XP, SuSe, Debian
D5 Prof, D7 Prof, Kylix
|
Verfasst: Mi 11.02.04 00:15
Ich nehm einfach mal an er will die 2 Nachkommastellen haben egal ob sie 00 sind oder nicht. Deshalb würde ich die 2.Variante von Gausi verwenden und falls die Zahlen ausgegeben werden sollen einfach mit:
Delphi-Quelltext 1:
| edit1.text:=FloatToStrF(zahl,ffFixed,2,2); |
auf 2 stellen formatieren dann gibt er auch 3,00 aus
Ach ja er sollte es eigentlich so machen wie Keldorn da ja random(300) nur Zahlen bis 299 liefert
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt
_________________ MfG Alex
Zuletzt bearbeitet von Alni am Mi 11.02.04 00:35, insgesamt 1-mal bearbeitet
|
|
flowstar 
      
Beiträge: 123
WinME
D6 Enterprise
|
Verfasst: Mi 11.02.04 00:22
danke für die Hilfe
habs jetzt auch so ähnlich gemacht, dachte es geibt sowas wie randomFloat(-3.0,3.0)
|
|
catweasel
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Mi 11.02.04 00:32
| Zitat: | habs jetzt auch so ähnlich gemacht, dachte es geibt sowas wie
randomFloat(-3.0,3.0) |
Naja spätestens jetzt gibts die wohl..:
(Ungetestet auf die Schnelle):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| function randomfloat(sr,ur:integer):real; var range : integer; begin range := max(sr,ur)-min(sr,ur); result := (random(range)-sr) / 100; end; |
Einmal geschrieben.. immer parat
Catweasel
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
flowstar 
      
Beiträge: 123
WinME
D6 Enterprise
|
Verfasst: Mi 11.02.04 01:03
bei mir gibts die jetzt auch seit heute
|
|
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 11.02.04 21:36
Moin erstmal, war bisher eher bei SwissdelphiCenter aktiv, aber jetzt hab ich das Forum entdeckt, das mir auch sehr gut gefällt.
Hoffe mir wird immer geholfen, wenn ich mal eine Frage haben sollte.
Random übergibt, ohne Parameter aufgerufen, schon einen Fließkommawert zwischen 0 und 1.
=> Quelltext 1: 2: 3: 4:
| function randomfloat(sr,ur:single):single; begin Result:=sr+random*(ur-sr); end; |
|
|
catweasel
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Mi 11.02.04 22:51
| Zitat: | | Moin erstmal, war bisher eher bei SwissdelphiCenter aktiv, aber jetzt hab ich das Forum entdeckt, das mir auch sehr gut gefällt. |
Na dann mal Herzlich Willkommen...
(Obwohl das eher Tino als "Gastgeber" sagen sollte  )
| Zitat: | | Hoffe mir wird immer geholfen, wenn ich mal eine Frage haben sollte. |
Na ich denke hier wird keiner aus Boshaftigkeit schweigen
| Zitat: | | Random übergibt, ohne Parameter aufgerufen, schon einen Fließkommawert zwischen 0 und 1 |
Und wieviel Dezimalstellen hat der ?
Catweasel
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: Mi 11.02.04 22:55
Maximal 18, so wies aussieht
|
|
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 11.02.04 23:15
Also Übergeben wird es ja direkt über den FPU stack, sprich maximal als extended.
Je nach dem, welche Konstanten jetzt die random Funktion verwendet, sind mehr oder weniger Stellen davon wirklich gut durchmischt. Ändern tun sich aber alle Stellen bei jedem Aufruf.
Random mit Parameter multipliziert eigentlich auch den übergebenen Integer mit diesem Wert und rundet dann.
|
|