kostenloser Webspace werbefrei: lima-city


Zufallszahlen mit maximaler Anzahl Kommastellen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c*************h

    Ja, eigentlich sagt die Überschrift schon alles!
    Wie kann ich einen Zufallsgenerator in PHP erstellen der nur maximal 2 Kommastellen erzeugt?
    Kann mir da jemand vielleicht ein vollständiges Skript geben?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. <?php
    $startzeit = microtime(true);
    // Inhalt der Seite ...
    printf('Diese Seite wurde in %01.2f Sekunden geladen.', microtime(true) - $startzeit);
    ?>


    Ich denke so etwas kann dir als denk anstoß helfen.

    printf('%01.2f', $zahl); // $zahl als float


    http://www.php.net/manual/de/function.sprintf.php

    Beitrag zuletzt geändert: 5.3.2012 20:05:30 von dexus85
  4. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Google als Denkanstoß hätte auf diese Seiten verwiesen. Das vollständige Script zu guttenbergen ist mir zu doof - man muß ja nur um das rand - dingens ein round - dingens screiben :tongue:

    http://php.net/manual/de/function.rand.php
    http://www.php.net/manual/de/function.round.php

    Beitrag zuletzt geändert: 5.3.2012 20:14:06 von sonok
  5. Beide Antworten sind eigentlich nicht ganz ausreichend, da sie Fehler enthalten.
    @dexus85: Von Ausgabe war nicht unbedingt die rede, vielleicht will der TE ja mit der Zahl weiterrechnen.
    @sonok: Dein Skript liefert keine wahrlich zufällige Zahl, da du den Zufallsgenerator nicht initialisierst. Ausserem gibt rand() einen Integer zurück. round() bringt also nichts.

    @TE:
    Auch ich werde dir kein vollständiges Skript geben. Ein bisschen denken musst du schon noch.
    Zuerst musst du mit srand() deinen Zufallsgenerator initialisierten. Man übergibt srand() normalerweise einen zufälligen Wert, wie zum Beispiel die Systemzeit. Üblicherweise nimmt man microtime( )*1000000 oder microtime( )*1234567.
    Danach bekommst du mit rand() deine zufällige Zahl.
    Danach kannst du diese Zahl einfach durch 100 dividieren und bekommst eine zufällige Zahl, mit zwei zufälligen Nachkommastellen.

    Lg
  6. wrertzu schrieb:
    Beide Antworten sind eigentlich nicht ganz ausreichend, da sie Fehler enthalten.
    @dexus85: Von Ausgabe war nicht unbedingt die rede, vielleicht will der TE ja mit der Zahl weiterrechnen.
    @sonok: Dein Skript liefert keine wahrlich zufällige Zahl, da du den Zufallsgenerator nicht initialisierst. Ausserem gibt rand() einen Integer zurück. round() bringt also nichts.

    @TE:
    Auch ich werde dir kein vollständiges Skript geben. Ein bisschen denken musst du schon noch.
    Zuerst musst du mit srand() deinen Zufallsgenerator initialisierten. Man übergibt srand() normalerweise einen zufälligen Wert, wie zum Beispiel die Systemzeit. Üblicherweise nimmt man microtime( )*1000000 oder microtime( )*1234567.
    Danach bekommst du mit rand() deine zufällige Zahl.
    Danach kannst du diese Zahl einfach durch 100 dividieren und bekommst eine zufällige Zahl, mit zwei zufälligen Nachkommastellen.

    Lg


    Wenn du mein Beitrag gelesen hättest, wäre dir aufgefallen, das ich auf sprintf verlinke.

    Wenn sich ein TE nicht selber mit der Thematik auseinander setzt bringt ihnen das auch nicht viel, wenn wir Ihm da alles fertig vorsetzen. Entsprechend, war in meinem Beitrag kein Fehler. Denn mein Beispiel soll den User dazu animieren, sich selber Gedanken zu machen, denn nur so lernt er auch. Grundlagen sind das A und O...

    Zum andren, srand benötigt seit Versionen keine Zufallszahlen mehr, man kann Sie zwar übergeben, aber viel ändern tut das nichts.
  7. wrertzu schrieb:
    Beide Antworten sind eigentlich nicht ganz ausreichend, da sie Fehler enthalten.
    @dexus85: Von Ausgabe war nicht unbedingt die rede, vielleicht will der TE ja mit der Zahl weiterrechnen.
    @sonok: Dein Skript liefert keine wahrlich zufällige Zahl, da du den Zufallsgenerator nicht initialisierst. Ausserem gibt rand() einen Integer zurück. round() bringt also nichts.


    Wie es liebe wenn Leute klugscheißen wollen!
    Welche php Version nutzt du das du meinst man müsse noch irgendwas initialisieren?
    php.net schreibt zur function rand() nämlich folgendes:

    Hinweis: Seit PHP 4.2.0 besteht keine Notwendigkeit mehr, den Zufallsgenerator für Zahlen mit srand() oder mt_srand() zu füttern, das geschieht nun automatisch.


    Desweiteren steht nirgendwo das die Zahl nicht ausgegeben werden soll und da der TE keine Ahnung davon hat ist es defenitiv schön zu sehen was bei raus kommt wenn Parameter verändert.


    Beitrag zuletzt geändert: 6.3.2012 9:20:54 von trickdieb
  8. trickdieb schrieb: l
    Wie es liebe wenn Leute klugscheißen wollen!
    Welche php Version nutzt du das du meinst man müsse noch irgendwas initialisieren?

    Danke für die Berichtigung. Das ist mir wohl entgangen. Ändert trotzdem nichts an der Tatsache das rand() einen Integer zurück gibt.

    Desweiteren steht nirgendwo das die Zahl nicht ausgegeben werden soll und da der TE keine Ahnung davon hat ist es defenitiv schön zu sehen was bei raus kommt wenn Parameter verändert.

    :confused::confused:

  9. Desweiteren steht nirgendwo das die Zahl nicht ausgegeben werden soll und da der TE keine Ahnung davon hat ist es defenitiv schön zu sehen was bei raus kommt wenn Parameter verändert.

    :confused::confused:


    Okay, ich gestehe das ich da noch nicht ganz wach war und der Teil des Posts in die Tonne kann :D

    Beitrag zuletzt geändert: 6.3.2012 22:52:53 von trickdieb
  10. Ich würde es so machen:
    <?php
    $rand=rand($minimal,$maximal)/100;
    ?>

    So sollte nun die Variable $rand mit einer Zahl mit zwei kommastellen gefüllt sein.
  11. So ähnlich. Man muss den Minimal- und den Maximalwert natürlich noch mit 100 multiplizieren, d.h. dieser Code erfüllt alle Anforderungen:
    $var = mt_rand($minimum*100, $maximum*100) / 100;
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!