我有一个程序,我想要一个对象返回两个数字之间的值。但问题是大多数时候,我得到的数字不在边界内。这是代码:
public int getSize() {
int s = (int)Math.random() * (max - min) + min;
return s;
}
Run Code Online (Sandbox Code Playgroud)
min 和 max 在代码中都定义为 320 和 640,但有时我得到的值低于我需要的值(例如我曾经得到 283),有时更高。有人可以帮忙吗?
283如果min/max是320/ ,我不知道你怎么可能得到640。
也就是说,您的代码中有一个错误会使其始终返回min. 要修复它,请使用以下命令:
int s = (int)(Math.random() * (max - min) + min);
Run Code Online (Sandbox Code Playgroud)
请注意添加的括号。没有它们,您将把结果转换为Math.random()to int。这总是给出零,使整个表达式的计算结果为min。
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |