Erhalten Sie eine Zufallszahl zwischen 0,0200 und 0,120 (Float-Zahlen) [duplicate]

Lesezeit: 3 Minuten

Benutzeravatar von danieljames
danieljames

Ich muss mit JavaScript eine Zufallszahl zwischen 0,0200 und 0,120 erstellen. Wie würde ich das tun?

Ich interessiere mich speziell für Gleitkommazahlen, nicht ganze Zahlen. Die verknüpfte Frage (Generieren zufälliger ganzer Zahlen in JavaScript in einem bestimmten Bereich) fragt speziell nach “Generieren zufälliger ganzer Zahlen”. Selbst wenn einige der Antworten auf die verknüpfte Frage angeben, wie dies für Floats zu tun ist, ist dies nicht klar was sie tun. Diese Frage sucht eindeutig nach einer Zufallszahl zwischen Floats und ist daher kein Duplikat.

  • Das ist nicht ein Duplikat von stackoverflow.com/questions/1527803/…. Bei dieser Frage geht es speziell um Gleitkommazahlen, bei der anderen um ganze Zahlen. Die Antworten sind nicht kompatibel, da sie Math.floor() verwenden.

    – Ted Bigham

    6. August 2018 um 20:57 Uhr

  • @TedBigham, das erste Beispiel im verknüpften Duplikat verwendet keinen Boden.

    – Stephan Rauch

    7. August 2018 um 1:02 Uhr

  • Die verknüpfte Antwort, die keinen Boden verwendet, gibt auch nur eine inklusive / exklusive Antwort. Diese Frage ist mehrdeutig und basiert auf der akzeptierten Antwort, nach der sie gesucht haben, inklusive/inklusive, was auch den nicht doppelten Status rechtfertigt.

    – Ted Bigham

    7. August 2018 um 4:18 Uhr

Du könntest benutzen

(Math.random() * (0.120 - 0.0200) + 0.0200).toFixed(4)

toFixed(n) wird verwendet, um eine Zahl in einen String umzuwandeln, wobei nur die “n” Dezimalstellen beibehalten werden.

Hoffe es hilft ^_^

  • +1. Für diejenigen, die neugierig waren, habe ich die Standardabweichung dieser Funktion berechnet, um sicherzustellen, dass sie eine gleichmäßige Verteilung der “Zufälligkeit” aufweist – sehen Sie sich die Ergebnisse an. Solche Sachen sind für mich interessant.

    – Mulan

    18. Juli 2013 um 16:14 Uhr


  • Wirf ein parseFloat( ) um das Ding und es ist perfekt für mich.

    – Ted Bigham

    6. August 2018 um 21:21 Uhr

Benutzeravatar von Guilherme Oderdenge
Guilherme Oderdenge

Hier sind Sie ja:

function generateRandomNumber() {
    var min = 0.0200,
        max = 0.120,
        highlightedNumber = Math.random() * (max - min) + min;

    alert(highlightedNumber);
};

generateRandomNumber();

Ich verstehe Ihre eigentliche Frage – Sie wissen nicht, wie Sie eine Zufallszahl zwischen Gleitkommazahlen erhalten, oder? Übrigens, die Antwort wird vorher weitergegeben.

Um mit dem Code zu spielen, Klicken Sie einfach hier, um zu jsFiddle zu gelangen.

Aktualisieren

Um die vier ersten Zahlen Ihrer Dezimalstelle zu erhalten, verwenden Sie .toFixed(3) Methode. Ich habe ein Beispiel durchgeführt hier, auf jsFiddle.

  • Danke für die JsFiddle. Das ist großartig.

    – Daniel James

    18. Juli 2013 um 15:03 Uhr

  • Ist es möglich zu runden und nur 3 Dezimalstellen anzuzeigen? Ich dachte, .toFixed würde funktionieren, aber das hat es nicht.

    – Daniel James

    18. Juli 2013 um 15:08 Uhr


  • Ich habe es jetzt verwendet highlightedNumber = (Math.random() * (max - min) + min).toFixed(4);

    – Daniel James

    18. Juli 2013 um 15:11 Uhr


  • Ich habe ein Update gemacht. @Edit: Oh, tut mir leid. Ich habe die akzeptierte Antwort nicht gesehen.

    – Guilherme Oderdenge

    18. Juli 2013 um 15:14 Uhr


  • Für diejenigen, die neugierig waren, habe ich die Standardabweichung dieser Funktion berechnet, um sicherzustellen, dass sie eine gleichmäßige Verteilung der “Zufälligkeit” aufweist – sehen Sie sich die Ergebnisse an. Solche Sachen sind für mich interessant.

    – Mulan

    18. Juli 2013 um 16:14 Uhr


Wenn Sie das und andere Zufallszahlen oder Dinge generieren möchten, würde ich vorschlagen, einen Blick auf das zu werfen Chance Bibliothek. Es bietet eine schöne Abstraktionsebene, sodass Sie nicht mit Math.random() herumspielen und Ihre eigene schreiben müssen.

chance.floating({min: 0.02, max: 0.12});

Vollständige Offenlegung: Ich bin der Autor, also bin ich etwas voreingenommen 🙂

Wenn dies das einzige zufällige Ding ist, das Sie generieren müssen, oder wenn es sich um eine Client-Seite handelt, bei der die Größe ein echtes Problem darstellt, würde ich vorschlagen, nur einen der obigen Vorschläge zu verwenden. Nicht ein paar Kb wert, wo ein paar Zeilen ausreichen.

  • Schöne Bibliothek. Danke für den Link und die Arbeit 😉

    – Weiser Mann

    16. Januar 2015 um 15:18 Uhr

1404950cookie-checkErhalten Sie eine Zufallszahl zwischen 0,0200 und 0,120 (Float-Zahlen) [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy