示例 1:50 + (int)(Math.random() * 50)
返回 50 到 99 之间的整数。小数形式的最大数字为 99.9 循环。
示例 2:
34 + (int)(Math.random() * 21)
返回一个介于 34 和 55 之间的整数。
小数形式的最大数为 54.9 循环。
为什么示例 2 返回 55 而不是 54?
最佳答案
Math.random()
返回[0.0, 1.0)
范围内的小数,
所以你的假设在每个例子中都是正确的
对于第一个例子,50 + 49.9 = 99.9
对于第二个例子,34 + 20.9 = 54.9
我不确定你在哪里得到 55 例如 2 因为当小数转换为 int 时,小数将失去其精度,有效地将它向下舍入以创建最大值 99 例如 1 和 54 例如 2
编辑
书上写错了,如果你想让范围是34到55,代码就得是
34 + (int)(Math.random() * 22)
关于java - 数学随机场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44875891/