【问题标题】:how to generate positive and negative numbers in Java [duplicate]如何在Java中生成正数和负数[重复]
【发布时间】:2012-10-10 00:22:14
【问题描述】:

可能重复:
How to generate random positive and negative numbers in java

您好,我正在尝试在 Java 中创建一个方法来在 Java 中创建负值和正值。

问题是我不知道如何编写这个程序,但我知道其中的逻辑。我认为它应该是这样的

 Random generator = new Random();

 for (int i = 0; i < 21; i++)
 {
       System.out.print(generator.nextInt(100) + 1);
       System.out.println();
 } 

但是使用上面的代码,我只能得到正值,我需要介于 -100 和 100 之间的值,但是我怎样才能完成这样的事情呢?

【问题讨论】:

    标签: java math random


    【解决方案1】:

    你可以使用:

    Random generator = new Random();
    int val = 100 - generator.nextInt(201);
    

    或者,正如 JoachimSauer 在 cmets 中建议的那样:

    int val = generator.nextInt(201) - 100;
    

    【讨论】:

    • 我个人会使用generator.nextInt(200) - 100,但这只是个人喜好问题。
    • 啊,非常感谢这是诀窍 :) 不知道我可以这样减去它!
    • @JoachimSauer:当然。我认为这样更好。将更新答案。谢谢!
    • @PabloSantaCruz 顺便说一句,您最好在答案中的某处指出生成器的类型(即随机)。我注意到它既没有写在问题中也没有写在答案中=)
    【解决方案2】:

    一般公式是

    int val = rand.nextInt(max - min + 1) + min;
    

    请注意,minmax 可以为负数。 (最大值 > 最小值)

    【讨论】:

      猜你喜欢
      • 2011-04-25
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 2013-12-19
      • 1970-01-01
      相关资源
      最近更新 更多