Я хотел сгенерировать случайное число между 1_000_0000_0000_000
и 9_999_9999_9999_999L
, используя Java, поэтому я использовал следующий код:
final long MAX_NUMBER = 9_999_9999_9999_999L;
final long MIN_NUMBER = 1_000_0000_0000_000L;
System.out.print(Long.valueOf(new Random().nextLong() *
(MAX_NUMBER - MIN_NUMBER)));
Проблема с кодом в том, что код генерирует 15-значное случайное число, но последние 3 цифры всегда равны нулю, и иногда он генерирует отрицательное число.
Кто-нибудь может сказать мне, почему последние 3 цифры всегда равны нулю?
Вот некоторые из выходов,
7160629848698886104000
-6581075034034719564000
6645937379553681443000
6363833355925386903000
687008666691635000
,322464880868778000
,8823481009216000
,3935643560572000
25.01.2015MIN_NUMBER
к результату, что гарантирует, что результат не будет слишком маленьким. Тем не менее, я не вывожу вывод, оканчивающийся на ноль. 25.01.2015