package Review_Randomnum;
import java.util.Scanner;
public class RandomNum {
public static void main(String[] args) {
System.out.println("Please enter a minimum value: ");
Scanner input = new Scanner(System.in);
int first = input.nextInt();
System.out.println("Please enter a maximum value: ");
int second = input.nextInt();
int number = ((int)(Math.random()) * ((second - first)) + first);
System.out.println(number);
}
}
所以我在这个网站上查了很多答案,但没有用,我没有收到任何错误,我只是打印出最低价值。我不知道如何让程序在两个值输入之间产生一个随机整数
答案 0 :(得分:5)
您的随机数在以下表达式中被截断为0:
((int)(Math.random())
原因是Math.random()
返回的 double 大于或等于0
且小于1
,当投射到{{}时1}} 被截断到int
(有关详情,请参阅documentation)。
相反,首先将您想要的数字计算为0
,然后转换回double
:
int