[英]java giving me 15 numbers instead of 14 in random number generator
我正在尝试为卡片组(2-14)中的卡生成随机数,但是,当我运行该程序时,有时会得到15。有人可以解释我在做什么错吗?
dealer1= (int) (Math.random() *14+2);
dealer2= (int) (Math.random () *14+2);
player1= (int) (Math.random () *14+2);
player2= (int) (Math.random () *14+2);
Math.random()
返回介于0.0(含)和1.0( Math.random()
之间的值。
假设我们掷0.99,所以得到13,86。 15,86。 四舍五入为整数,即为15。
请考虑使用Random ,它具有nextInt(arg)
方法,该方法返回0..arg-1
随机值:
Random random = new Random(); // preferably private, static, final, shared across your application
int dealer1 = random.nextInt(13) + 2;
int dealer2 = random.nextInt(13) + 2;
int player1 = random.nextInt(13) + 2;
int player2 = random.nextInt(13) + 2;
那是因为当您将浮点数转换为整数时,它会四舍五入(它会被下限)。
假设您的Math.random() * 14
返回13.9
在您的示例中,将2加到结果中,因此该值现在为13.9 + 2 = 15.9
完成所有操作后,该值会通过强制转换为整数舍入。
最后的四舍五入是为什么有时以15结束的原因,因为15.9的四舍五入为15。
该示例应帮助您了解正在发生的事情: https : //repl.it/NjUT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.