---
title: "init(nan:signaling:)"
framework: swift
role: symbol
role_heading: Initializer
path: "swift/double/init(nan:signaling:)"
---

# init(nan:signaling:)

Creates a NaN (“not a number”) value with the specified payload.

## Declaration

```swift
init(nan payload: Double.RawSignificand, signaling: Bool)
```

## Parameters

- `payload`: The payload to use for the new NaN value.
- `signaling`: Pass true to create a signaling NaN or false to create a quiet NaN.

## Discussion

Discussion NaN values compare not equal to every value, including themselves. Most operations with a NaN operand produce a NaN result. Don’t use the equal-to operator (==) to test whether a value is NaN. Instead, use the value’s isNaN property. let x = Double(nan: 0, signaling: false) print(x == .nan) // Prints "false" print(x.isNaN) // Prints "true"

## See Also

### Working with Binary Representation

- [bitPattern](swift/double/bitpattern.md)
- [significandBitPattern](swift/double/significandbitpattern.md)
- [significandWidth](swift/double/significandwidth.md)
- [exponentBitPattern](swift/double/exponentbitpattern.md)
- [significandBitCount](swift/double/significandbitcount.md)
- [exponentBitCount](swift/double/exponentbitcount.md)
- [radix](swift/double/radix.md)
- [init(bitPattern:)](swift/double/init(bitpattern:).md)
- [init(sign:exponentBitPattern:significandBitPattern:)](swift/double/init(sign:exponentbitpattern:significandbitpattern:).md)
- [Double.Exponent](swift/double/exponent-swift.typealias.md)
- [Double.RawSignificand](swift/double/rawsignificand.md)
- [Double.RawExponent](swift/double/rawexponent.md)
