---
title: isNaN
framework: swift
role: symbol
role_heading: Instance Property
path: swift/double/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 Double’s State

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