如何在Java中生成正数和负数[重复]

Posted

技术标签:

【中文标题】如何在Java中生成正数和负数[重复]【英文标题】:how to generate positive and negative numbers in Java [duplicate] 【发布时间】: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 之间的值,但是我怎样才能完成这样的事情呢?

【问题讨论】:

【参考方案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 可以为负数。 (最大值 > 最小值)

【讨论】:

以上是关于如何在Java中生成正数和负数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java的移位和异或运算

如何在Java中生成随机字符串[重复]

理解如何创建实体管理器或者我是不是可以在 JAVA EE 中生成它们的问题 [重复]

如何在Java中生成随机字符串[重复]

在Java中生成字母数字随机字符串[重复]

负数在计算机中如何存储