Function

NSDecimalNormalize(_:_:_:)

Normalizes the internal format of two decimal numbers to simplify later operations.

Declaration

func NSDecimalNormalize(_ number1: UnsafeMutablePointer<Decimal>, _ number2: UnsafeMutablePointer<Decimal>, _ roundingMode: NSDecimalNumber.RoundingMode) -> NSDecimalNumber.CalculationError

Discussion

Decimal instances are represented in memory as a mantissa and an exponent, expressing the value mantissa x 10^exponent. A number can have many representations; for example, the following table lists several valid representations for the number 100:

Mantissa

Exponent

100

0

10

1

1

2

Format number1 and number2 so that they have equal exponents. This format makes addition and subtraction very convenient. Both NSDecimalAdd(_:_:_:_:) and NSDecimalSubtract(_:_:_:_:) call NSDecimalNormalize(_:_:_:). You may want to use it if you write more complicated addition or subtraction routines.

For explanations of the possible return values, see NSDecimalAdd(_:_:_:_:).

For more information, see Number and Value Programming Topics.

See Also

Performing Arithmetic Using References

func NSDecimalCompact(UnsafeMutablePointer<Decimal>)

Compacts the decimal structure for efficiency.

typealias Decimal.RoundingMode

An alias for an enumeration that specifies possible rounding modes.

enum NSDecimalNumber.RoundingMode

These constants specify rounding behaviors.

typealias Decimal.CalculationError

An alias for a type that specifies possible calculation errors.