Je veux générer un nombre aléatoire compris entre 1 et 10, jusqu'à 2 décimales,
J'utilise actuellement ceci ci-dessous pour générer mes numéros,
var randomnum = Math.floor(Math.random() * (10.00 - 1.00 + 1.00)) + 1.00;
En fin de compte, j'aimerais savoir comment générer des nombres tels que:
1,66
5,86
8,34
Au format: var randomnum = alors le code
note: Je ne me souviens pas pourquoi j'avais déjà généré mes chiffres de cette manière, mais je me souviens de quelque chose à propos de Math.random générer des nombres à 8 décimales.
Merci pour l'aide! :)
Ps: J'ai vu beaucoup d'articles sur l'attente pour arrondir les nombres générés et n'en ai trouvé aucun qui veuille les générer directement.
UPDATE: je veux une valeur numérique et non une chaîne qui ressemble à un nombre
Vous étiez très proche, vous n'avez pas besoin de travailler avec des nombres décimaux min et max. Soit max = 1000 et min = 100, donc après votre Math.floor, vous devrez diviser par 100:
var randomnum = Math.floor(Math.random() * (1000 - 100) + 100) / 100;
Ou si vous voulez travailler avec des nombres décimaux:
var precision = 100; // 2 decimals
var randomnum = Math.floor(Math.random() * (10 * precision - 1 * precision) + 1 * precision) / (1*precision);
Multipliez le nombre aléatoire d'origine par 10^decimalPlaces
, mettez-le au sol, puis divisez par 10^decimalPlaces
. Par exemple:
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>");
}
Vous pouvez utiliser le code ci-dessous.
var randomnum = (Math.random() * (10.00 - 1.00 + 1.00) + 1.00).toFixed(2);
Une autre façon avec TypeScript/angular example:
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));
Obtenir des valeurs aléatoires entre -10.0 et -10.9