Có thể kiểm tra xem một số có phải là NaN
hay không?kiểm tra số NaN
Trả lời
Có, bằng cách sử dụng thực tế là NaN
không bằng bất kỳ số nào khác, bao gồm chính nó.
Điều đó có ý nghĩa khi bạn nghĩ về những gì NaN
có nghĩa là bạn đã tạo một giá trị không thực sự nằm trong quyền lực của bạn để đại diện cho các giá trị dấu phẩy động "bình thường".
Vì vậy, nếu bạn tạo hai số mà bạn không biết chúng là gì, bạn khó có thể cân nhắc chúng bằng nhau. Họ có thể nhưng, với khả năng khá lớn của các con số mà nó có thể (vô hạn trong thực tế), cơ hội hai là cùng một số là vanishingly nhỏ :-)
Bạn có thể tìm kiếm một hàm (vĩ mô thực sự) như isnan
(trong math.h
cho C và cmath
cho C++) hoặc chỉ sử dụng những tài sản mà giá trị NaN
không bằng chính nó với một cái gì đó như:
if (myFloat != myFloat) { ... }
Nếu vì một lý do kỳ lạ, thực hiện C của bạn không có isnan
(nên, vì tiêu chuẩn bắt buộc), bạn có thể tự viết mã của riêng mình, vì vậy mething như:
int isnan_float (float f) { return (f != f); }
Và làm bọc 'myFloat! = myFloat' vào một số chức năng' isnan' với một chú thích, vì sợ những người đọc tương lai không biết về nó rất bối rối. – GManNickG
bạn đang tìm kiếm null, nhưng điều đó chỉ hữu ích cho con trỏ. một số không thể tự rỗng, nó có giá trị đã biết mà bạn đặt vào đó hoặc dữ liệu ngẫu nhiên từ bất kỳ thứ gì đã có trong bộ nhớ trước đó.
Dưới Linux/gcc, có isNaN (double), phù hợp với BSD4.3.
C99 cung cấp fpclassify (x) và isnan (x).
(Nhưng C++ tiêu chuẩn/trình biên dịch không nhất thiết bao gồm chức năng C99.)
Phải có một cách nào đó với std :: numeric_limit <> ... Kiểm tra ...
Doh. Tôi đáng lẽ phải biết ... Câu hỏi này đã được trả lời trước ... Checking if a double (or float) is NaN in C++ Using NaN in C++? http://bytes.com/topic/c/answers/588254-how-check-double-inf-nan
- 1. Kiểm tra xem số phức có NaN
- 2. Kiểm tra nan trong Cython
- 3. Kiểm tra sự hiện diện NaN trong thùng chứa
- 4. Số nguyên Numpy nan
- 5. làm thế nào để kiểm tra các giá trị NaN trong Objective-C (iphone sdk)
- 6. C++ Kiểm tra số nguyên.
- 7. Hàng loạt: Kiểm tra số tham số
- 8. Kiểm tra NaN, null và> = 0 trong một điều kiện
- 9. Làm thế nào để kiểm tra xem giá trị có nan không nhất thiết?
- 10. Sự khác biệt giữa nan, NaN và NAN
- 11. NaN có bằng NaN không?
- 12. Việc kiểm tra các thông số xấu khi kiểm tra đơn vị quan trọng như thế nào?
- 13. vị trí CALayer chứa NaN: [nan -0.5]
- 14. Tại sao Số ([]) === 0 và Số ({}) === NaN trong Javascript?
- 15. C# Unit Kiểm tra tham số StreamWriter
- 16. Cách dễ nhất để kiểm tra số
- 17. kiểm tra Java nếu số trong khoảng
- 18. RSpec - Kiểm tra thông số mạnh
- 19. POST tham số để kiểm tra PHPUnit
- 20. EAN 8: Cách tính số kiểm tra?
- 21. Kiểm tra tràn số nguyên SSE2
- 22. Kiểm tra xem chuỗi có chứa số
- 23. Cách kiểm tra loại thông số mẫu?
- 24. Ruby kiểm tra nếu số chẵn, phao
- 25. Cách đếm số hộp kiểm đã được kiểm tra
- 26. parseInt luôn trả về NaN?
- 27. Cách kiểm tra xem số có số thập phân không?
- 28. Python: Kiểm tra nếu đối số là một số nguyên
- 29. làm thế nào để kiểm tra datatype trong nút js-cụ thể cho số nguyên
- 30. Radio Button Kiểm tra không kiểm tra
NIL (NULL trong C-ese) là một con trỏ * * giá trị đặc biệt. Không có thứ như NULL cho số. Có lẽ bạn đang nghĩ đến các điểm NaN nổi? – zwol
Tôi có nghĩa là NaN, xấu của tôi, đã khắc phục sự cố Q. – MBZ
Nhân bản: http://stackoverflow.com/questions/570669/checking-if-a-double-or-float-is-nan-in-c – GManNickG