检查值是否为数字

mat*_*e64 10 air flash adobe actionscript-3

我怎么能简单地检查返回的类型的值int或者uint是多少?

Tau*_*ayi 13

简单:

if(_myValue is Number)
{
    fire();

}// end if
Run Code Online (Sandbox Code Playgroud)

[UPDATE]

请记住,如果_myValue是类型intuint,那么(_myValue is Number)也将等同于true.如果你想知道if _myValue是一个不是整数(int)或无符号整数(uint)的数字,换句话说是一个浮点数,那么你可以简单地修改条件如下:

(_myValue is Number && !(_myValue is int) && !(_myValue is uint))
Run Code Online (Sandbox Code Playgroud)

我们来看一个例子:

package 
{
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite 
    {

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            var number1:Object = 1; // int
            var number2:Object = 1.1; // float
            var number3:Object = 0x000000; // uint

            trace(number1 is Number); // true
            trace(number2 is Number); // true
            trace(number3 is Number); // true

            trace(number1 is Number && !(number1 is int) && !(number1 is uint)); // false
            trace(number2 is Number && !(number2 is int) && !(number2 is uint)); // true
            trace(number3 is Number && !(number3 is int) && !(number3 is uint)); // false

        }

    }

}
Run Code Online (Sandbox Code Playgroud)


Rob*_*ert 5

如果您只想知道myValue是否是数字类型之一(Number,int,uint),您可以检查是否(_myValue is Number)为Taurayi建议.

如果你想知道,如果_myValue是一个数字字符串(如"6320"或"5.987"),使用此:

if (!isNaN(Number(_myValue)))
{
    fire();
}
Run Code Online (Sandbox Code Playgroud)

它用于Number(_myValue)投射_myValueNumber课堂.如果Number无法将其转换为有用的数字,它将返回NaN,因此我们使用!isNaN()以确保返回的值不是"不是数字".

它将为类型的任何变量返回true Number(只要它的值是不是NaN)int,uint以及包含数字的有效表示字符串.