Как я могу просто проверить, является ли возвращаемое значение типа int или uint числом?
Проверьте, является ли значение числом
Ответ 1
Простой:
if(_myValue is Number)
{
fire();
}// end if
[ОБНОВЛЕНИЕ]
Имейте в виду, что если _myValue имеет тип int или uint, то (_myValue is Number) также будет равен true. Если вы хотите узнать, является ли _myValue число, которое не является целым числом (int) или целым числом без знака (uint), другими словами, float, вы можете просто изменить условное выражение следующим образом:
(_myValue is Number && !(_myValue is int) && !(_myValue is uint))
Посмотрим на пример:
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
}
}
}
Ответ 2
Если вы хотите узнать только, является ли myValue одним из числовых типов (Number, int, uint), вы можете проверить, был ли (_myValue is Number) предложенным Таурайи.
Если вы также хотите знать, является ли _myValue числовой строкой (например, "6320" или "5.987" ), используйте это:
if (!isNaN(Number(_myValue)))
{
fire();
}
Он использует Number(_myValue) для приведения _myValue в класс Number. Если Number не может преобразовать его в полезное число, он вернет NaN, поэтому мы используем !isNaN(), чтобы убедиться, что возвращаемое значение не является "не числом".
Он вернет true для любой переменной типа Number (пока ее значение не NaN), int, uint и строки, содержащие допустимое представление числа.
Ответ 3
Эти методы могут быть проблематичными, если вы хотите проверить ввод текстового поля, которое всегда является строкой. Если у вас есть строка с "123" , а с "123" - "Число", вы получите ложь. Таким образом, число ( "123" ) даст true, но опять же так будет Number ( "lalala" ) (событие, хотя результат NaN, который скажет вам, что NaN - это номер (true).
Чтобы работать со строкой, вы можете сделать:
var s:String = "1234";
String(Number(s)) == String(s);
--True
var s:String = "lalala";
String(Number(s)) == String(s);
--False
Ответ 4
Есть