Ich möchte eine Zufallszahl zwischen 1 und 10 bis zu 2 Dezimalstellen generieren.
Ich verwende das unten, um meine Zahlen zu generieren.
var randomnum = Math.floor(Math.random() * (10.00 - 1.00 + 1.00)) + 1.00;
Letztendlich würde ich gerne wissen, wie man Zahlen generiert wie:
1,66
5,86
8,34
Im Format: var randomnum = dann der Code
randbemerkung: Ich kann mich nicht erinnern, warum ich meine Zahlen zuvor so generiert hatte, aber erinnere mich an etwas über Math.random , das Zahlen mit 8 Dezimalstellen generiert.
Danke für die Hilfe! :)
Ps: Ich habe viele Posts über das Warten gesehen, um generierte Zahlen abzurunden oder aufzuwerten, und ich habe noch keinen gefunden, der sie direkt generieren wollte.
UPDATE: Ich möchte einen Zahlenwert und keine Zeichenfolge, die wie eine Zahl aussieht
Sie waren sehr nah dran, was Sie brauchen, ist nicht mit Dezimalzahlen als Min und Max zu arbeiten. Wir haben max = 1000 und min = 100, so dass Sie nach Ihrer Math.floor durch 100 teilen müssen:
var randomnum = Math.floor(Math.random() * (1000 - 100) + 100) / 100;
Oder wenn Sie mit Dezimalzahlen arbeiten möchten:
var precision = 100; // 2 decimals
var randomnum = Math.floor(Math.random() * (10 * precision - 1 * precision) + 1 * precision) / (1*precision);
Multiplizieren Sie die ursprüngliche Zufallszahl mit 10^decimalPlaces
und legen Sie sie durch 10^decimalPlaces
auseinander. Zum Beispiel:
floor(8.885729840652472 * 100) / 100 == 8.88
function genRand(min, max, decimalPlaces) {
var Rand = Math.random()*(max-min) + min;
var power = Math.pow(10, decimalPlaces);
return Math.floor(Rand*power) / power;
}
for (var i=0; i<20; i++) {
document.write(genRand(0, 10, 2) + "<br>");
}
Sie können den folgenden Code verwenden.
var randomnum = (Math.random() * (10.00 - 1.00 + 1.00) + 1.00).toFixed(2);
Ein weiterer Weg mit TypeScript/angle Beispiel:
getRandom(min: number, max: number) {
return Math.random() * (max - min) + min;
}
console.log('inserting min and max values: ', this.getRandom(-10.0, -10.9).toPrecision(4));
zufällige Werte zwischen -10,0 und -10,9 erhalten