Math.random()是否可以返回大于1的值?

时间:2017-03-01 07:03:32

标签: java math random lang

是否可以返回类似1.125155的值,这是一个大于1的双倍值?

我的代码:

Math.random()

5 个答案:

答案 0 :(得分:3)

如果您使用的是java.lang.Math,则无法执行此操作。 (Read Doc)

答案 1 :(得分:1)

您可以这样做:

 Random ran = new Random();
 double x = ran.nextDouble() + 1

x现在是double值大于1的随机数。

答案 2 :(得分:0)

您可以使用BigDecimal这样移动小数位......

Random ran = new Random();
double result = BigDecimal.valueOf(ran.nextDouble()).movePointRight(1).doubleValue()

如果您不必转换回double,代码将更清晰,如果您打算在进一步的计算中使用返回的值,那么您可以更好地控制舍入问题(上面我已经转换回双倍,因为这是你的OP所要求的)

答案 3 :(得分:0)

Math.random()从[0,1]返回一个double;因此,要让它返回一个大于0的数字,你将不得不做一些事情

Math.random()+ 1从[0 + 1,1 + 1]或[1,2]

返回一个数字

Math.random()* 2返回[0 * 2,1 * 2]或[0,2]

中的数字

答案 4 :(得分:-3)

如果你想使用两个可能应该是随机的值并且永远不相同的值(随机函数有时在执行两次时给出相同的值),有一个解决方法,然后将你的值放到一个列表中并使用list.shuffle( ) 希望这会有所帮助。