是否可以返回类似1.125155的值,这是一个大于1的双倍值?
我的代码:
Math.random()
答案 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( ) 希望这会有所帮助。