【问题标题】:Math.Random not working correctly typescriptMath.Random 无法正常工作打字稿
【发布时间】:2017-02-09 14:52:06
【问题描述】:

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

  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>

但是随机数总是低于最小值,不在范围内,不知道为什么...

有什么线索吗??谢谢!!

【问题讨论】:

  • 当你不使用randomize类/对象时,为什么要在randomize原型中添加一个字段numRandomed并立即返回该字段的值?
  • 我在视图中使用该变量,带有 {{ numRandomed }} 我通过视图中的按钮调用该函数。
  • 这是某种闭包吗?你确定你使用了正确的闭包形式吗?难道不用在外面定义let me=this;然后赋值给me.numRandomed吗?
  • 如何在此处粘贴我的代码?我会把它完整地说出来,所以你可以看到我到底有什么。
  • 我将代码添加到主帖中。

标签: javascript math typescript random ionic2


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

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 2020-10-12
    • 2021-11-07
    • 1970-01-01
    • 2020-07-04
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多