Math.Random无法正常工作

时间:2017-02-09 14:52:07

标签: javascript math typescript random ionic2

简单的问题,但我找不到答案,我对数学很不好。问题是我有这个公式来生成一个随机数。

  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>

但随机数始终低于最小数,不在范围内,我不知道为什么......

任何线索?谢谢!!

1 个答案:

答案 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方法的返回值或类似的东西。