---
title: Decimal
framework: foundation
role: symbol
role_heading: Structure
path: foundation/decimal
---

# Decimal

A structure representing a base-10 number.

## Declaration

```swift
struct Decimal
```

## Topics

### Creating an empty decimal

- [init()](foundation/decimal/init().md)

### Creating a decimal from components

- [init(sign:exponent:significand:)](foundation/decimal/init(sign:exponent:significand:).md)

### Creating a decimal from a floating point number

- [init(_:)](foundation/decimal/init(_:)-6wgru.md)
- [init(floatLiteral:)](foundation/decimal/init(floatliteral:).md)

### Creating a decimal from an integer

- [init(exactly:)](foundation/decimal/init(exactly:).md)
- [init(_:)](foundation/decimal/init(_:)-2tcho.md)
- [init(_:)](foundation/decimal/init(_:)-4gk29.md)
- [init(_:)](foundation/decimal/init(_:)-5aznh.md)
- [init(_:)](foundation/decimal/init(_:)-7dmlc.md)
- [init(_:)](foundation/decimal/init(_:)-7a033.md)
- [init(integerLiteral:)](foundation/decimal/init(integerliteral:).md)

### Creating a decimal from an unsigned integer

- [init(_:)](foundation/decimal/init(_:)-2lxxy.md)
- [init(_:)](foundation/decimal/init(_:)-4gbgq.md)
- [init(_:)](foundation/decimal/init(_:)-9lio1.md)
- [init(_:)](foundation/decimal/init(_:)-9okou.md)
- [init(_:)](foundation/decimal/init(_:)-43cx6.md)

### Creating a decimal from another decimal

- [init(signOf:magnitudeOf:)](foundation/decimal/init(signof:magnitudeof:).md)
- [NSDecimalCopy(_:_:)](foundation/nsdecimalcopy(_:_:).md)

### Creating a decimal by parsing a string

- [init(_:format:lenient:)](foundation/decimal/init(_:format:lenient:)-6fk71.md)
- [init(_:format:lenient:)](foundation/decimal/init(_:format:lenient:)-8t5o2.md)
- [init(_:format:lenient:)](foundation/decimal/init(_:format:lenient:)-3u6o6.md)
- [init(string:locale:)](foundation/decimal/init(string:locale:).md)
- [init(_:strategy:)](foundation/decimal/init(_:strategy:).md)
- [Decimal.ParseStrategy](foundation/decimal/parsestrategy.md)

### Performing arithmetic

- [pow(_:_:)](foundation/pow(_:_:).md)

### Performing arithmetic using references

- [NSDecimalCompact(_:)](foundation/nsdecimalcompact(_:).md)
- [NSDecimalAdd(_:_:_:_:)](foundation/nsdecimaladd(_:_:_:_:).md)
- [NSDecimalSubtract(_:_:_:_:)](foundation/nsdecimalsubtract(_:_:_:_:).md)
- [NSDecimalDivide(_:_:_:_:)](foundation/nsdecimaldivide(_:_:_:_:).md)
- [NSDecimalMultiply(_:_:_:_:)](foundation/nsdecimalmultiply(_:_:_:_:).md)
- [NSDecimalMultiplyByPowerOf10(_:_:_:_:)](foundation/nsdecimalmultiplybypowerof10(_:_:_:_:).md)
- [NSDecimalRound(_:_:_:_:)](foundation/nsdecimalround(_:_:_:_:).md)
- [NSDecimalPower(_:_:_:_:)](foundation/nsdecimalpower(_:_:_:_:).md)
- [NSDecimalNormalize(_:_:_:)](foundation/nsdecimalnormalize(_:_:_:).md)
- [Decimal.RoundingMode](foundation/decimal/roundingmode.md)
- [NSDecimalNumber.RoundingMode](foundation/nsdecimalnumber/roundingmode.md)
- [Decimal.CalculationError](foundation/decimal/calculationerror.md)
- [NSDecimalNumber.CalculationError](foundation/nsdecimalnumber/calculationerror.md)

### Getting a decimal’s characteristics

- [sign](foundation/decimal/sign.md)
- [exponent](foundation/decimal/exponent.md)
- [significand](foundation/decimal/significand.md)
- [magnitude](foundation/decimal/magnitude.md)
- [floatingPointClass](foundation/decimal/floatingpointclass.md)
- [isCanonical](foundation/decimal/iscanonical.md)
- [isFinite](foundation/decimal/isfinite.md)
- [isInfinite](foundation/decimal/isinfinite.md)
- [isNaN](foundation/decimal/isnan.md)
- [isNormal](foundation/decimal/isnormal.md)
- [isSignMinus](foundation/decimal/issignminus.md)
- [isSignaling](foundation/decimal/issignaling.md)
- [isSignalingNaN](foundation/decimal/issignalingnan.md)
- [isSubnormal](foundation/decimal/issubnormal.md)
- [isZero](foundation/decimal/iszero.md)
- [nextDown](foundation/decimal/nextdown.md)
- [nextUp](foundation/decimal/nextup.md)
- [ulp](foundation/decimal/ulp.md)

### Getting particular decimals

- [greatestFiniteMagnitude](foundation/decimal/greatestfinitemagnitude.md)
- [leastFiniteMagnitude](foundation/decimal/leastfinitemagnitude.md)
- [leastNonzeroMagnitude](foundation/decimal/leastnonzeromagnitude.md)
- [leastNormalMagnitude](foundation/decimal/leastnormalmagnitude.md)
- [pi](foundation/decimal/pi.md)
- [nan](foundation/decimal/nan.md)
- [quietNaN](foundation/decimal/quietnan.md)
- [radix](foundation/decimal/radix.md)
- [NSDecimalMaxSize](foundation/nsdecimalmaxsize.md)
- [NSDecimalNoScale](foundation/nsdecimalnoscale.md)

### Formatting decimals

- [formatted()](foundation/decimal/formatted().md)
- [formatted(_:)](foundation/decimal/formatted(_:).md)
- [Decimal.FormatStyle](foundation/decimal/formatstyle.md)

### Converting between decimals and strings

- [NSDecimalString(_:_:)](foundation/nsdecimalstring(_:_:).md)

### Comparing decimals

- [isEqual(to:)](foundation/decimal/isequal(to:).md)
- [isLess(than:)](foundation/decimal/isless(than:).md)
- [isLessThanOrEqualTo(_:)](foundation/decimal/islessthanorequalto(_:).md)
- [isTotallyOrdered(belowOrEqualTo:)](foundation/decimal/istotallyordered(beloworequalto:).md)
- [distance(to:)](foundation/decimal/distance(to:).md)
- [advanced(by:)](foundation/decimal/advanced(by:).md)
- [NSDecimalCompare(_:_:)](foundation/nsdecimalcompare(_:_:).md)

### Using reference types

- [NSDecimalNumber](foundation/nsdecimalnumber.md)

### Supporting Types

- [Decimal.FormatStyle](foundation/decimal/formatstyle.md)

### Operators

- [/(_:_:)](foundation/decimal/_(_:_:).md)
- [/=(_:_:)](foundation/decimal/_=(_:_:).md)

### Default Implementations

- [AdditiveArithmetic Implementations](foundation/decimal/additivearithmetic-implementations.md)
- [ExpressibleByFloatLiteral Implementations](foundation/decimal/expressiblebyfloatliteral-implementations.md)
- [ExpressibleByIntegerLiteral Implementations](foundation/decimal/expressiblebyintegerliteral-implementations.md)
- [Numeric Implementations](foundation/decimal/numeric-implementations.md)
- [SignedNumeric Implementations](foundation/decimal/signednumeric-implementations.md)
- [Strideable Implementations](foundation/decimal/strideable-implementations.md)

## Relationships

### Conforms To

- [AdditiveArithmetic](swift/additivearithmetic.md)
- [Comparable](swift/comparable.md)
- [ConvertibleFromGeneratedContent](foundationmodels/convertiblefromgeneratedcontent.md)
- [ConvertibleToGeneratedContent](foundationmodels/convertibletogeneratedcontent.md)
- [Copyable](swift/copyable.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [ExpressibleByFloatLiteral](swift/expressiblebyfloatliteral.md)
- [ExpressibleByIntegerLiteral](swift/expressiblebyintegerliteral.md)
- [Generable](foundationmodels/generable.md)
- [Hashable](swift/hashable.md)
- [InstructionsRepresentable](foundationmodels/instructionsrepresentable.md)
- [Numeric](swift/numeric.md)
- [Plottable](charts/plottable.md)
- [PromptRepresentable](foundationmodels/promptrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [SignedNumeric](swift/signednumeric.md)
- [Strideable](swift/strideable.md)

## See Also

### Numbers

- [Int](swift/int.md)
- [Double](swift/double.md)
- [NumberFormatter](foundation/numberformatter.md)
