在ActionScript中,(NaN == parseFloat(input.text))警告说它将永远是false。为什么?
时间:2020-03-06 14:53:44 来源:igfitidea点击:
尽管有相当清楚的文档指出,当我编写类似以下的代码块时,parseFloat()可以将NaN作为值返回:
if ( NaN == parseFloat(input.text) ) { errorMessage.text = "Please enter a number." }
我被警告比较将永远是错误的。测试表明警告是正确的。
更正的文档在哪里,如何将其编写为可与AS3一起使用?
解决方案
因为将任何内容与NaN进行比较总是错误的。使用isNaN()代替。
isNaN(parseFloat(input.text))
可以在此处的Adobe Flex语言参考以及其他全局可用功能中找到文档。
顺便说一句,如果由于某种原因我们无法访问isNaN(),则传统方法是将数字与其自身进行比较:
if( number != number ) { //Is NaN }