2013-12-10 46 views
-1

我被要求创建一个提示用户输入最小值和最大值的GUI。使用输入的值,我想在两者之间生成一个随机整数。到目前为止,我有下面的内容,但是我如何确保生成的整数在两者之间,我迷失了方向。如果最小数字是0并且最大数字是任何东西,我可以得到正确的输出,但是如果最小数字超过那个数字,则不能。谢谢!在两个用户输入值之间生成一个整数

private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {            
    double minNumber, maxNumber, randomValue, outputValue; 

    //Get the string data entered and parse it to numerical data 
    minNumber = Double.parseDouble(minInput.getText()); 
    maxNumber = Double.parseDouble(maxInput.getText()); 

    //create a random value to multiply off of. 
    randomValue = (Math.random()); 

    //generate random output value. 
    outputValue = (randomValue*maxNumber); 

    //output the ranomly generated number to the outputLabel on the GUI. 
    outputLabel.setText("The random value generated is: " + outputValue); 
+0

在'0'和'1'之间生成一个随机数,称之为'x'。然后计算'min + x *(max-min)'。 –

+1

使用谷歌搜索会比发布这个问题更快...... – Andrew

回答

1
//generate random output value. 
outputValue = randomValue*(maxNumber - minNumber)+minNumber; 
+0

这对于发布者的目的来说可能已经足够了,但它对于最终值有点偏向。 –

1

要获得你算算它这样你的随机值:

randomValue = (Math.random() % (maxNumber - minNumber)) + minNumber; 

顺便说一句,这个问题已经讨论过了here