JS - Как я могу сгенерировать длинное случайное число? - PullRequest
0 голосов
/ 29 января 2019

Я знаю, что мне нужно использовать Math.random () для создания случайных чисел, но сегодня я попытался создать случайное число от 1 до 9999 ... (9 повторяется 19 раз), и мой вывод всегда заканчивается на 3-5 нулей.Как я могу генерировать более подробные случайные числа?

Что я сделал:

const foo = Math.floor(Math.random() * parseInt("9".repeat(19)));

Кроме того, я почти уверен, что знаю, как это сделать, но если кто-то может сказать мнеКак мне заполнить нули, чтобы получить определенное количество цифр?(например, pad (15,4) становится 0015, потому что вам нужно еще 2 цифры, чтобы сделать его длиной 4 цифры)

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Лучше всего просто использовать строку случайных целых чисел (решает также заполнение):

let foo = '';
for(i=0; i<19; ++i) foo += Math.floor(Math.random() * 10);
alert(foo);
0 голосов
/ 29 января 2019

Вам необходимо использовать числа, закодированные как строки.Цикл, подобный следующему:

var desiredMaxLength = 19
var randomNumber = '';
for (var i = 0; i < desiredMaxLength; i++) {
    randomNumber += Math.floor(Math.random() * 10);
}

Артемика для чисел, представленных в виде строк, может быть реализована с помощью библиотеки strint, найденной в https://github.com/rauschma/strint.

0 голосов
/ 29 января 2019

Вы сталкиваетесь с Number.MAX_SAFE_INTEGER.Наибольшее точное целое значение равно 2 ^ 53-1 или 9007199254740991.

...