¿Cómo puedo simplemente verificar si un valor devuelto de tipo int
o es un número?Compruebe si el valor es un número
Respuesta
simple:
if(_myValue is Number)
{
fire();
}// end if
[ACTUALIZACIÓN]
Tenga en cuenta que si _myValue
es de tipo int
o uint
, entonces (_myValue is Number)
también se equiparan a true
. Si desea saber si _myValue
es un número que no es un entero (int) o un entero sin signo (uint), en otras palabras, un flotador, a continuación, sólo tiene que modificar el condicional de la siguiente manera:
(_myValue is Number && !(_myValue is int) && !(_myValue is uint))
Let de ver un ejemplo:
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
}
}
}
Estos métodos podrían ser problemático si se desea comprobar la entrada de un campo de texto, que es 'siempre' una cadena. Si tiene una cadena con "123" y marca con "123" es Número, obtendrá un falso. Entonces Number ("123") daría true, pero también lo hará Number ("lalala") (aunque el resultado es NaN que le dirá que NaN es Número (verdadero).
Para trabajar con una cadena, podría hacer:
var s:String = "1234";
String(Number(s)) == String(s);
--True
var s:String = "lalala";
String(Number(s)) == String(s);
--False
Si sólo desea saber si myValue es uno de los tipos numéricos (Number, int, uint), se puede comprobar si (_myValue is Number)
como Taurayi sugirió
Si también. desea saber si _myValue es una cadena numérica (como "6320" o "5,987"), utilice la siguiente:
if (!isNaN(Number(_myValue)))
{
fire();
}
Se utiliza para emitir Number(_myValue)
_myValue
a la clase Number
. Si Number
no puede convertirlo en un número útil, devolverá NaN
, por lo que usaremos !isNaN()
para asegurarnos de que el valor devuelto no sea "no un número".
devolverá cierto para cualquier variable de tipo Number
(siempre que su valor no es NaN
), int
, uint
y cadenas que contienen una representación válida de un número.
IMO, esta es la mejor respuesta. Es exactamente lo que habría publicado. Aunque no explica completamente la relación entre Number, int y uint (es decir, cualquier int es un número, pero los números no son necesariamente ints o uints), esta implementación es mejor que las verificaciones condicionales, en parte porque también lleva cadenas numéricas en cuenta. – Triynko
@Triynko Edité mi respuesta para explicar mejor los tipos numéricos. – Robert
- 1. Compruebe si un valor de scanf es un número?
- 2. Compruebe si el valor es nulo
- 3. Haskell: compruebe si es un número entero, o compruebe el tipo de variable
- 4. columna Compruebe si hay un valor único
- 5. Java, compruebe si el número entero es múltiple de un número
- 6. Compruebe si existe un valor en ArrayList
- 7. ¿Determinar si el valor de JavaScript es un "número entero"?
- 8. Pruebe si el valor es un número entero en Sass
- 9. Compruebe si el valor existe en dataTable?
- 10. Compruebe que la variable es un número
- 11. Compruebe si un objeto es un delegado
- 12. ¿Cómo puedo verificar si un valor es un número?
- 13. XPath test si el valor del nodo es el número
- 14. Determinar si un valor es un número entero en Python
- 15. Perl, ¿cómo determinar si un valor variable es un número?
- 16. compruebe si un archivo es ejecutable
- 17. compruebe si un objeto es nulo
- 18. Compruebe si el tipo es hashable
- 19. Compruebe si una cadena termina con un número en PHP
- 20. C - Compruebe si se ha asignado un número entero
- 21. Sharepoint: compruebe si un usuario es miembro de un grupo
- 22. Compruebe si una lista contiene un valor específico en Clojure
- 23. compruebe si el archivo es de un tipo determinado
- 24. Mangosta: compruebe si el objeto es un objeto de mangosta
- 25. Compruebe si el objeto Ruby es un booleano
- 26. Compruebe si existe un valor único antes de crearlo
- 27. Compruebe el valor si existe en la columna
- 28. Compruebe si ID es igual a
- 29. Compruebe si un objeto es una colección genérica
- 30. Compruebe si un directorio es un (sistema de archivos) raíz
"_myValue is Number" seguirá siendo verdadero y typeof (_myValue) seguirá siendo "number" incluso si _myValue se escribe como int o uint. De acuerdo con http: // stackoverflow.com/a/9447869/88409 Flash almacena valores enteros como ints, y como Number solo si hay una parte fraccionaria en el valor o excede 0x0FFFFFFF (valor más alto que puede almacenarse en los 28 bits restantes del átomo de 32 bits) que reserva 3 bits para una descripción de tipo y 1 bit para el signo). Consulte también http://stackoverflow.com/a/2697151/88409 y un caso de prueba aquí: http://troyworks.com/blog/2007/12/02/as3-understanding-uint-int-number/ – Triynko
Interlocutor quiere para saber si _myValue es un número, no un Número. – Robert
@Robert lo siento, puedo ser un poco tonto algunas veces, no estoy muy seguro de a qué te refieres. – Taurayi