2008-09-29 32 views
7

Mặc dù khá rõ ràng documentation mà nói rằng parseFloat() có thể trở lại NaN như một giá trị, khi tôi viết một khối như:Trong ActionScript (NaN == parseFloat (input.text)) cảnh báo rằng nó sẽ luôn là sai. Tại sao?

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

Tôi cảnh báo rằng việc so sánh sẽ luôn luôn sai. Và thử nghiệm cho thấy cảnh báo là chính xác.

Tài liệu được sửa chữa ở đâu và làm cách nào tôi có thể viết tài liệu này để hoạt động với AS3?

Trả lời

21

Vì việc so sánh mọi thứ với NaN luôn là sai. Sử dụng isNaN() để thay thế.

+1

Vì vậy, mặc: if (NaN == NaN) {/ * không thể truy cập * /} – dlamblin

5

isNaN (parseFloat (input.text))

0

Tài liệu có thể được tìm thấy trong Adobe Flex Language Reference Here cũng như các chức năng có sẵn trên toàn cầu khác.

2

BTW, nếu vì một lý do nào bạn không có quyền truy cập vào isNaN(), phương pháp truyền thống là để so sánh số với bản thân:

if(number != number) 
{ 
    //Is NaN 
} 
Các vấn đề liên quan