简单的问题,但我找不到答案,我对数学很不好。问题是我有这个公式来生成一个随机数。
numRandomed: any;
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
public randomize(min, max) {
console.log("minimo: " + min);
console.log("maximo: " + max);
this.numRandomed = Math.floor(Math.random()*(max-min+1)+min);
console.log(this.numRandomed);
}
和视图
<ion-list>
<ion-item>
<ion-label floating>Min Number</ion-label>
<ion-input type="number" [(ngModel)]='minNumber'></ion-input>
</ion-item>
<ion-item>
<ion-label floating>Max Number</ion-label>
<ion-input type="number" [(ngModel)]='maxNumber'></ion-input>
</ion-item>
</ion-list>
<button ion-button (click)='randomize(minNumber,maxNumber)'>Randomize!</button>
<p>{{ numRandomed }}</p>
但随机数始终低于最小数,不在范围内,我不知道为什么......
任何线索?谢谢!!
答案 0 :(得分:1)
我在node.js中尝试了这个代码并且效果很好。
此代码:
function randomize(min, max) {
console.log("minimo: " + min);
console.log("maximo: " + max);
let x;
console.log(Math.floor(Math.random()*(max-min+1)+min));
console.log(x = Math.floor(Math.random()*(max-min+1)+min));
}
randomize(10,20)
randomize(10,20)
randomize(10,20)
randomize(10,20)
randomize(10,20)
randomize(10,20)
有这个输出
minimo: 10
maximo: 20
20
11
minimo: 10
maximo: 20
17
13
minimo: 10
maximo: 20
18
20
minimo: 10
maximo: 20
13
11
minimo: 10
maximo: 20
18
10
minimo: 10
maximo: 20
12
16
我建议,你在某些时候覆盖numRandomed或者没有使用randomize方法的返回值或类似的东西。