mt_rand выходит за заданный диапазон

208
31 декабря 2017, 08:31

Собственно вызываю $CardCookie = mt_rand(6103006430040008016, 6103006430040020000); , на выходе при генерации некоторых карт вылезает за указанный диапазон, замечено что на 24 значения где-то.

Как лечить?

Answer 1

mt_getrandmax(); - покажет, не превышен ли порог максимально возможного рандомного числа возвращаемого mt_rand. Если да, mt_rand может давать погрешность.

mt_rand(min, max);  (max - min) <= mt_getrandmax()
Answer 2

Число слишком большое и не представимо точно в типе double.

Можно заметить, что на Си++ выводится другое значение: https://ideone.com/2pJ4uh

printf("%.0f", 6103006430040020000.);
6103006430040019968

Связанный вопрос: Отображение числа 9223372036854775807

READ ALSO
Не удаётся вставить запись в базу данных

Не удаётся вставить запись в базу данных

Друзья, возник следующие вопросВ php-коде я делаю так, чтобы запись вставлялась в базу данных, но результат не оправдывает своих ожиданий

298
Генерация контрольной цифры штрихкода

Генерация контрольной цифры штрихкода

Как сгенерировать последнюю цифру (контрольную сумму) штрихкода (19 цифр вместе с контрольной цифрой)?

253
Повторение переменных в маршрутах laravel

Повторение переменных в маршрутах laravel

Есть URL, к которому надо прийти: sitecom/catalog/cat1/cat2/25-rose-1

238
Что быстрее php5-fpm или php 7?

Что быстрее php5-fpm или php 7?

Не могу разобраться с FPM на PHPКак я понял FPM можно скачать только здесь - https://php-fpm

223