是否可以返回像1.125155这样的值,该值大于1?
我的代码:
Math.random()
如果您使用的是java.lang.math,这是不可能的。(读取文档)
您可以做这样的事情:
Random ran = new Random();
double x = ran.nextDouble() + 1
x
现在是double
值大于1的随机数。
您可以使用这样的bigdecimal移动十进制位置...
Random ran = new Random();
double result = BigDecimal.valueOf(ran.nextDouble()).movePointRight(1).doubleValue()
如果您不必转换回double
,则代码将更加干净,如果您打算在进一步的计算中使用返回值,则可以对四舍五入问题进行更多的控制(上面我已将其转换为双倍是您的OP要求)。
math.random()从[0,1]返回双重;因此,要让它返回一个大于0的数字,您必须做几个事情之一
math.random() 1从[0 1,1 1]或[1,2]
返回一个数字math.random()*2从[0*2,1*2]或[0,2]
如果要使用两个值应该是随机且永远不会相同的值,则有解决方法(随机函数有时在执行两次时给出相同的值)列表和使用list.shuffle()希望这会有所帮助。