---
title: isNaN
framework: swift
role: symbol
role_heading: Instance Property
path: swift/float/isnan
---

# isNaN

A Boolean value indicating whether the instance is NaN (“not a number”).

## Declaration

```swift
var isNaN: Bool { get }
```

## Discussion

Discussion Because NaN is not equal to any value, including NaN, use this property instead of the equal-to operator (==) or not-equal-to operator (!=) to test whether a value is or is not NaN. For example: let x = 0.0 let y = x * .infinity // y is a NaN

// Comparing with the equal-to operator never returns 'true' print(x == Double.nan) // Prints "false" print(y == Double.nan) // Prints "false"

// Test with the 'isNaN' property instead print(x.isNaN) // Prints "false" print(y.isNaN) // Prints "true" This property is true for both quiet and signaling NaNs.

## See Also

### Querying a Float’s State

- [isZero](swift/float/iszero.md)
- [isFinite](swift/float/isfinite.md)
- [isInfinite](swift/float/isinfinite.md)
- [isSignalingNaN](swift/float/issignalingnan.md)
- [isNormal](swift/float/isnormal.md)
- [isSubnormal](swift/float/issubnormal.md)
- [isCanonical](swift/float/iscanonical.md)
- [floatingPointClass](swift/float/floatingpointclass.md)
