2008-09-29 12 views
7

A pesar de la clara y no documentation que dice que parseFloat() puede volver NaN como un valor, cuando escribo un bloque como:En ActionScript (NaN == parseFloat (UBS)) advierte que siempre será falso. ¿Por qué?

if (NaN == parseFloat(input.text)) { 
    errorMessage.text = "Please enter a number." 
} 

estoy advirtió que la comparación siempre será falsa. Y las pruebas muestran que la advertencia es correcta.

¿Dónde está la documentación corregida, y cómo puedo escribir esto para trabajar con AS3?

Respuesta

21

Porque comparar cualquier cosa con NaN siempre es falso. Use isNaN() en su lugar.

+1

Así que: si (== NaN NaN) {/ * inalcanzable * /} – dlamblin

5

isNaN (parseFloat (input.text))

0

documentación se puede encontrar en el Adobe Flex Referencia del lenguaje Here, así como otras funciones disponibles a nivel mundial.

2

Por cierto, si por alguna razón usted no tiene acceso a isNaN(), el método tradicional consiste en comparar el número a sí mismo:

if(number != number) 
{ 
    //Is NaN 
} 
Cuestiones relacionadas