2016-09-21 7 views
2

私はCollat​​z推測の小さなAS3関数を作っています。 これはコードである:入力テキストが整数に変更されますか? 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 
     } 
    } 
} 

しかし、時々のTextInputが負の数になります。

123123123123はそうで-1715645152

になり、-1430928461に

12312312312321312になります。

私はなぜ知らないが、私はそれが

numb=int(input.text) 

に関係していると思います。しかし、その後の式が間違った結果になるだろうので、私は、絶対値を行うにはしたくありません。代わりに

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

答えて

4

12312312312321312の

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

は-1715645152

それに変わる: あなたはそれが負の数に停止(およびそれを自分でテスト)したい場合は、これを行います桁数はintegerデータ型に収まらない。それぞれintNumberに置き換えて、もう一度テストしてください。

すなわち:var numb:Number=0;var amount:Number=0;と働いnumb=Number(input.text);

+0

!ありがとうございました! –

関連する問題