web-dev-qa-db-fra.com

Générer un nombre aléatoire entre 2 valeurs à 2 décimales en Javascript

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

5
T.script

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);
5
Observer

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>");
}

3
clabe45

Vous pouvez utiliser le code ci-dessous.

var randomnum = (Math.random() * (10.00 - 1.00 + 1.00) + 1.00).toFixed(2);
2
vinay k hegde

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

0
Diego Venâncio