简体   繁体   中英

How to get a random number in specific range using Javascript?

I'm trying to find a way to run in my Node script command that gets a random number from 0.01 to 10.85 for example. The number must look like 0.01 and not like 0.000000001.

How can I do this?

My current command:

var randomTicket = helper.getRandomInt(0, 10.85);

That command for some reason it returns only the number 0

Are there any other alternative ways?

Math.random would do the trick. It returns a value between [0,1) (1 is exclusive). Then you scale the range by the difference between max and min and add min as offset.

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

But because you get a float value, you can not clip the decimal after the second position. You can format it to a string. I'm not sure but this should work.

var number = getRandomArbitrary(0.01, 10.85);
var numString = number.toFixed(2);

EDIT

If you only generate integers then multiply min and max by 100.0 and divide the result by 100.0.

var number = getRandomArbitrary(1.0, 1085.0);
var numString = (number / 100.0).toFixed(2);

or

var number = getRandomInt(1, 1085);
var numString = (number / 100.0).toFixed(2);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM