Как я могу просто проверить, является ли возвращаемое значение типа 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
Есть