---
title: SignedNumeric
framework: swift
role: symbol
role_heading: Protocol
path: swift/signednumeric
---

# SignedNumeric

A numeric type with a negation operation.

## Declaration

```swift
protocol SignedNumeric : Numeric
```

## Overview

Overview The SignedNumeric protocol extends the operations defined by the Numeric protocol to include a value’s additive inverse. Conforming to the SignedNumeric Protocol Because the SignedNumeric protocol provides default implementations of both of its required methods, you don’t need to do anything beyond declaring conformance to the protocol and ensuring that the values of your type support negation. To customize your type’s implementation, provide your own mutating negate() method. When the additive inverse of a value is unrepresentable in a conforming type, the operation should either trap or return an exceptional value. For example, using the negation operator (prefix -) with Int.min results in a runtime error. let x = Int.min let y = -x // Overflow error

## Topics

### Operators

- [-(_:)](swift/signednumeric/-(_:).md)

### Instance Methods

- [negate()](swift/signednumeric/negate().md)

## Relationships

### Inherits From

- [AdditiveArithmetic](swift/additivearithmetic.md)
- [Equatable](swift/equatable.md)
- [ExpressibleByIntegerLiteral](swift/expressiblebyintegerliteral.md)
- [Numeric](swift/numeric.md)

### Inherited By

- [BinaryFloatingPoint](swift/binaryfloatingpoint.md)
- [FloatingPoint](swift/floatingpoint.md)
- [SignedInteger](swift/signedinteger.md)

### Conforming Types

- [Double](swift/double.md)
- [Float](swift/float.md)
- [Float16](swift/float16.md)
- [Float80](swift/float80.md)
- [Int](swift/int.md)
- [Int128](swift/int128.md)
- [Int16](swift/int16.md)
- [Int32](swift/int32.md)
- [Int64](swift/int64.md)
- [Int8](swift/int8.md)

## See Also

### Basic Arithmetic

- [AdditiveArithmetic](swift/additivearithmetic.md)
- [Numeric](swift/numeric.md)
- [Strideable](swift/strideable.md)
