我的随机数生成器不起作用,尝试过查看其他问题,没有解决方法

时间:2016-05-30 01:22:08

标签: java eclipse

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);


    }

} 

所以我在这个网站上查了很多答案,但没有用,我没有收到任何错误,我只是打印出最低价值。我不知道如何让程序在两个值输入之间产生一个随机整数

1 个答案:

答案 0 :(得分:5)

您的随机数在以下表达式中被截断为0:

((int)(Math.random())

原因是Math.random()返回的 double 大于或等于0且小于1,当投射到{{}时1}} 被截断int(有关详情,请参阅documentation)。

相反,首先将您想要的数字计算为0,然后转换回double

int