搜索

首页  >  问答  >  正文

java 生成随机数

Random 类的实例 random

random.doubles(1, var1, var2  ).findFirst().orElse(0);

貌似只能生成 [var1, var2) 的随机数(左闭右开),
我想生成[var1, var2](左闭右闭)的该怎么写?

迷茫迷茫2802 天前813

全部回复(1)我来回复

  • PHPz

    PHPz2017-04-18 09:51:20

    解决方法:
    random.doubles(1, var1, var2 + Double.MIN_VALUE).findFirst().orElse(0);

    double可表示的小数位数过多,所以按概率来说,要能随机出var2的机率太小,建议楼主可以忽略。如果你只取固定的小数位数,例如2位小数,可以这样做:

    // 取[1.20, 1.30]
    long n = random.longs(1, 120, 130 + 1).findFirst().orElse(0);
    // 将n的小数点左移两位

    回复
    0
  • 取消回复