Math.random()是否有可能返回大于1的值



是否可以返回像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()希望这会有所帮助。

最新更新