DecimalNumber, an immutable subclass of NSNumber (which itself is a private class), provides an object-oriented wrapper for doing base-10 arithmetic. An instance can represent any number that can be expressed as mantissa*10^exponent where mantissa is a decimal integer up to 38 digits long, and exponent is an integer between -128 and 127.
In the course of doing arithmetic, a method may produce calculation errors, such as division by zero. It may also meet circumstances where it has a choice of ways to round a number off. The way the method acts on such occasions is called its "behavior." The arithmetic methods in this class do not round numbers off. They assume that your need for precision does not exceed 38 significant digits. And they raise exceptions when they try to divide by zero, or when they produce a number that is too big or small to be represented.