【发布时间】:2019-12-31 12:41:46
【问题描述】:
Java 中的 BankApplication 程序,setDebitCard() 函数存在问题。
在这里,我无法在每次 java 运行 后为 debitCardNumber 变量生成一个唯一的随机数,而它与 debitCardPin 一起工作正常。
我尝试使用 Random 类方法
nextDouble(),Math.random(), ThreadLocalRandom.current().nextDouble() 也是..
问题:
在尝试上述所有操作后,
debitCardNumber的输出是相同的。 (没有任何语法错误)另外,我得到相同的 10 位数
debitCardNumber而不是 12 位数。debitCardPin工作正常,但有时它会给我一个唯一的 3 位随机数。
代码
package bankAccountApp;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class Current extends Account {
private int debitCardNumber;
private int debitCardPin;
Random rand = new Random();
//setDebitCard() code
private void setDebitCard(){
debitCardNumber = (int)(ThreadLocalRandom.current().nextDouble()*Math.pow(10,12));
/* Also tried using
debitCardNumber = (int)(rand.nextDouble()*Math.pow(10,12));
debitCardNumber = (int)(Math.random()*Math.pow(10,12));
*/
debitCardPin = (int)(Math.random()*Math.pow(10,4));
}
预期结果:
debitCardNumber应该在每个 JAVA RUN 之后返回一个唯一的随机 12 位整数
debitCardPin应该只返回 4 位整数。
实际结果:
debitCardNumber在每次 JAVA RUN 之后返回相同的 10 位整数
debitCardPin有时会返回一个 3 位唯一随机整数。
【问题讨论】: