В ActionScript (NaN == parseFloat (input.text)) предупреждает, что он всегда будет ложным. Зачем? - PullRequest
7 голосов
/ 30 сентября 2008

Несмотря на довольно ясную документацию , в которой говорится, что parseFloat () может возвращать NaN в качестве значения, когда я пишу блок вроде:

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

Меня предупреждают, что сравнение всегда будет ложным. И тестирование показывает, что предупреждение было правильным.

Где находится исправленная документация и как я могу написать это для работы с AS3?

Ответы [ 4 ]

21 голосов
/ 30 сентября 2008

Потому что сравнение чего-либо с NaN всегда ложно. Вместо этого используйте isNaN ().

5 голосов
/ 30 сентября 2008

IsNaN (parseFloat (input.text))

2 голосов
/ 08 октября 2008

Кстати, если по какой-то причине у вас нет доступа к isNaN (), традиционный метод - сравнить число с самим собой:

if( number != number )
{
    //Is NaN 
}
0 голосов
/ 30 сентября 2008

Документацию можно найти в Справочнике по языку Adobe Flex Здесь , а также в других глобальных функциях.

...