Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
rand() mit Nachkommastellen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
rand() mit Nachkommastellen


 
Chrissi007
30-06-2005, 16:13 
 
Huhu, :D

Ich hab gerade ein Problem mit der php Funktion rand() bzw. mt_rand().

Mein Vorhaben:

mt_rand(-1.000000000000, 1.000000000000);

Ich möchte Zahlen mit ca. 10 stelliger Genauigkeit im Bereich zwischen -1 und +1 zufällig generieren.

Leider klappt das mit der oben beschriebenen Methode nicht. Es werden lediglich die Werte -1, 0, 1 ausgegeben, allerdings ohne Nachkommastellen.


Kann jemand von euch mir bei meinem Vorhaben weiterhelfen? :)

 
Shurakai
30-06-2005, 16:16 
 
Schau mal auf php.net, dort kann man im Handbuch nachlesen, dass mt_rand einen Integer zurückgibt....

 
TobiaZ
30-06-2005, 16:16 
 
wie gibst du denn aus?

mt_rand

 
mrhappiness
30-06-2005, 16:18 
 
echo mt_rand(-1000000000000, 1000000000000) / 1000000000000;

 
wahsaga
30-06-2005, 16:19 
 
Original geschrieben von Chrissi007
Leider klappt das mit der oben beschriebenen Methode nicht. Es werden lediglich die Werte -1, 0, 1 ausgegeben, allerdings ohne Nachkommastellen.
na so'n zufall.
könnte das daran liegen, dass der rückgabewert von mt_rand() eindeutig als integer festgelegt ist ...?
(und die parameter übrigens auch, also werden deine -1.000000000000 und 1.000000000000 gleich beim aufruf in -1 und 1 konvertiert.)

Ich möchte Zahlen mit ca. 10 stelliger Genauigkeit im Bereich zwischen -1 und +1 zufällig generieren.
dann erzeuge ganzzahlige zufallszahlen zwischen -10^x und 10^x, und dividiere diese anschließend durch 10^x.

 
Chrissi007
30-06-2005, 16:58 
 
Supi - Danke :)

Hat geklappt ;)

 
wahsaga
30-06-2005, 18:23 
 
immer wieder erstaunlich, was 20 sekunden nachdenken bringen kann, nicht wahr?

 
mrhappiness
30-06-2005, 21:47 
 
Kommt drauf an bei wem... ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:22 Uhr.