隨機(jī)類具有一種在給定范圍內(nèi)生成隨機(jī)int的方法。例如:Random r = new Random(); int x = r.nextInt(100);這將生成一個大于或等于0且小于100的int數(shù)。我想對long數(shù)做完全相同的操作。long y = magicRandomLongGenerator(100);隨機(jī)類僅具有nextLong(),但不允許設(shè)置范圍。
3 回答

holdtom
TA貢獻(xiàn)1805條經(jīng)驗 獲得超10個贊
生成范圍內(nèi)數(shù)字的標(biāo)準(zhǔn)方法(無實用方法)是對范圍使用雙精度數(shù):
long range = 1234567L;
Random r = new Random()
long number = (long)(r.nextDouble()*range);
將為您提供介于0(含)和范圍(不含)之間的長時間。同樣,如果您想要x和y之間的數(shù)字:
long x = 1234567L;
long y = 23456789L;
Random r = new Random()
long number = x+((long)(r.nextDouble()*(y-x)));
將為您提供從1234567(含)到123456789(不含)的較長時間
注意:檢查括號,因為強(qiáng)制轉(zhuǎn)換為long的優(yōu)先級高于乘法。
添加回答
舉報
0/150
提交
取消