【问题标题】:Input text changes an integer? AS3输入文本改变一个整数? AS3
【发布时间】:2016-09-21 03:21:39
【问题描述】:

我正在制作 Collat​​z 猜想的小型 AS3 函数。 这是代码:

import flash.events.Event;
import flash.events.MouseEvent;

var numb:int=0
var amount:int=0
button.addEventListener(MouseEvent.CLICK, buttonclick)
function buttonclick(buttonclicked:MouseEvent):void{
    numb=int(input.text)
    trace(numb)
    amount=0
}
stage.addEventListener(Event.ENTER_FRAME, equate)
function equate(equate:Event):void{
    dynam.text=amount.toString() + "\n" + numb.toString();;
    if(numb !=0 && numb !=1){
        if(numb % 2 == 0){
            numb=numb/2
            amount+=1
        }
        else{
            numb=numb*3+1
            amount+=1
        }
    }
}

但是,有时文本输入会变成负数。

123123123123变成-1430928461

12312312312321312变成-1715645152

等等。

我不知道为什么,但我认为这与

numb=int(input.text)

但我不想做绝对值,因为那样的话等式会得出错误的结果。 如果您希望它在负数上停止(并自己测试),请执行以下操作:

if(numb !=0 && numb !=1 && numb>1)

代替

if(numb !=0 && numb !=1)

【问题讨论】:

    标签: actionscript-3 actionscript


    【解决方案1】:

    12312312312321312变成-1715645152

    该位数不适合integer 数据类型。将每个 int 替换为 Number 并再次测试。

    即:var numb:Number=0;var amount:Number=0;numb=Number(input.text);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-31
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多