Inherits from | |
Conforms to | |
Framework | /System/Library/Frameworks/Foundation.framework |
Availability | Available in Mac OS X v10.0 and later. |
Companion guide | |
Declared in | NSDecimalNumber.h |
Related sample code |
NSDecimalNumber
, an immutable subclass of NSNumber
, provides an object-oriented wrapper for doing base-10 arithmetic. An instance can represent any number that can be expressed as mantissa x 10^exponent
where mantissa is a decimal integer up to 38 digits long, and exponent is an integer from –128 through 127.
+ decimalNumberWithDecimal:
+ decimalNumberWithMantissa:exponent:isNegative:
+ decimalNumberWithString:
+ decimalNumberWithString:locale:
+ one
+ zero
+ notANumber
– initWithDecimal:
– initWithMantissa:exponent:isNegative:
– initWithString:
– initWithString:locale:
– decimalNumberByAdding:
– decimalNumberBySubtracting:
– decimalNumberByMultiplyingBy:
– decimalNumberByDividingBy:
– decimalNumberByRaisingToPower:
– decimalNumberByMultiplyingByPowerOf10:
– decimalNumberByAdding:withBehavior:
– decimalNumberBySubtracting:withBehavior:
– decimalNumberByMultiplyingBy:withBehavior:
– decimalNumberByDividingBy:withBehavior:
– decimalNumberByRaisingToPower:withBehavior:
– decimalNumberByMultiplyingByPowerOf10:withBehavior:
Creates and returns an NSDecimalNumber
object equivalent to a given NSDecimal
structure.
+ (NSDecimalNumber *)decimalNumberWithDecimal:(NSDecimal)decimal
An NSDecimal
structure that specifies the value for the new decimal number object.
An NSDecimalNumber
object equivalent to decimal.
You can initialize decimal programmatically or generate it using the NSScanner
method, scanDecimal:
NSDecimalNumber.h
Creates and returns an NSDecimalNumber
object equivalent to the number specified by the arguments.
+ (NSDecimalNumber *)decimalNumberWithMantissa:(unsigned long long)mantissa exponent:(short)exponent isNegative:(BOOL)isNegative
The mantissa for the new decimal number object.
The exponent for the new decimal number object.
A Boolean value that specifies whether the sign of the number is negative.
The arguments express a number in a kind of scientific notation that requires the mantissa to be an integer. So, for example, if the number to be represented is –12.345
, it is expressed as 12345x10^–3
—mantissa is 12345
; exponent is –3
; and isNegative is YES
, as illustrated by the following example.
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithMantissa:12345 |
exponent:-3 |
isNegative:YES]; |
NSDecimalNumber.h
Creates and returns an NSDecimalNumber
object whose value is equivalent to that in a given numeric string.
+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numericString
A numeric string.
Besides digits, numericString can include an initial “+” or “–”; a single “E” or “e”, to indicate the exponent of a number in scientific notation; and a single NSDecimalSeparator
to divide the fractional from the integral part of the number.
An NSDecimalNumber
object whose value is equivalent to numericString.
Whether the NSDecimalSeparator
is a period (as is used, for example, in the United States) or a comma (as is used, for example, in France) depends on the default locale.
NSDecimalNumber.h
Creates and returns an NSDecimalNumber
object whose value is equivalent to that in a given numeric string, interpreted using a given locale.
+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numericString locale:(NSDictionary *)locale
A numeric string.
Besides digits, numericString can include an initial “+” or “–”; a single “E” or “e”, to indicate the exponent of a number in scientific notation; and a single NSDecimalSeparator
to divide the fractional from the integral part of the number.
A dictionary that defines the locale (specifically the NSDecimalSeparator
) to use to interpret the number in numericString.
An NSDecimalNumber
object whose value is equivalent to numericString.
The locale parameter determines whether the NSDecimalSeparator
is a period (as is used, for example, in the United States) or a comma (as is used, for example, in France).
The following strings show examples of acceptable values for numericString:
“2500.6” (or “2500,6”, depending on locale)
“–2500.6” (or “–2500.6”)
“–2.5006e3” (or “–2,5006e3”)
“–2.5006E3” (or “–2,5006E3”)
The following strings are unacceptable:
“2,500.6”
“2500 3/5”
“2.5006x10e3”
“two thousand five hundred and six tenths”
NSDecimalNumber.h
Returns the way arithmetic methods, like decimalNumberByAdding:
, round off and handle error conditions.
+ (id < NSDecimalNumberBehaviors >)defaultBehavior
By default, the arithmetic methods use the NSRoundPlain
behavior; that is, the methods round to the closest possible return value. The methods assume your need for precision does not exceed 38 significant digits and raise exceptions when they try to divide by 0 or produce a number too big or too small to be represented.
If this default behavior doesn’t suit your application, you should use methods that let you specify the behavior, like decimalNumberByAdding:withBehavior:
. If you find yourself using a particular behavior consistently, you can specify a different default behavior with setDefaultBehavior:
.
NSDecimalNumber.h
Returns the largest possible value of an NSDecimalNumber
object.
+ (NSDecimalNumber *)maximumDecimalNumber
The largest possible value of an NSDecimalNumber
object.
NSDecimalNumber.h
Returns the smallest possible value of an NSDecimalNumber
object.
+ (NSDecimalNumber *)minimumDecimalNumber
The smallest possible value of an NSDecimalNumber
object.
NSDecimalNumber.h
Returns an NSDecimalNumber
object that specifies no number.
+ (NSDecimalNumber *)notANumber
An NSDecimalNumber
object that specifies no number.
Any arithmetic method receiving notANumber
as an argument returns notANumber
.
This value can be a useful way of handling non-numeric data in an input file. This method can also be a useful response to calculation errors. For more information on calculation errors, see the exceptionDuringOperation:error:leftOperand:rightOperand:
method description in the NSDecimalNumberBehaviors
protocol specification.
NSDecimalNumber.h
Returns an NSDecimalNumber
object equivalent to the number 1.0.
+ (NSDecimalNumber *)one
An NSDecimalNumber
object equivalent to the number 1.0.
NSDecimalNumber.h
Specifies the way that arithmetic methods, like decimalNumberByAdding:
, round off and handle error conditions.
+ (void)setDefaultBehavior:(id < NSDecimalNumberBehaviors >)behavior
behavior must conform to the NSDecimalNumberBehaviors
protocol.
NSDecimalNumber.h
Returns an NSDecimalNumber
object equivalent to the number 0.0.
+ (NSDecimalNumber *)zero
An NSDecimalNumber
object equivalent to the number 0.0.
NSDecimalNumber.h
Returns an NSComparisonResult
value that indicates the numerical ordering of the receiver and another given NSDecimalNumber
object.
- (NSComparisonResult)compare:(NSNumber *)decimalNumber
The number with which to compare the receiver.
This value must not be nil
. If this value is nil
, the behavior is undefined and may change in future versions of Mac OS X.
NSOrderedAscending
if the value of decimalNumber is greater than the receiver; NSOrderedSame
if they’re equal; and NSOrderedDescending
if the value of decimalNumber is less than the receiver.
NSDecimalNumber.h
Returns a new NSDecimalNumber
object whose value is the sum of the receiver and another given NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber
The number to add to the receiver.
A new NSDecimalNumber
object whose value is the sum of the receiver and decimalNumber.
This method uses the default behavior when handling calculation errors and rounding.
NSDecimalNumber.h
Adds decimalNumber to the receiver and returns the sum, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber withBehavior:(id < NSDecimalNumberBehaviors >)behavior
behavior specifies the handling of calculation errors and rounding.
NSDecimalNumber.h
Returns a new NSDecimalNumber
object whose value is the value of the receiver divided by that of another given NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByDividingBy:(NSDecimalNumber *)decimalNumber
The number by which to divide the receiver.
A new NSDecimalNumber
object whose value is the value of the receiver divided by decimalNumber.
This method uses the default behavior when handling calculation errors and rounding.
NSDecimalNumber.h
Divides the receiver by decimalNumber and returns the quotient, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByDividingBy:(NSDecimalNumber *)decimalNumber withBehavior:(id < NSDecimalNumberBehaviors >)behavior
behavior specifies the handling of calculation errors and rounding.
NSDecimalNumber.h
Returns a new NSDecimalNumber
object whose value is the value of the receiver multiplied by that of another given NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByMultiplyingBy:(NSDecimalNumber *)decimalNumber
The number by which to multiply the receiver.
A new NSDecimalNumber
object whose value is decimalNumber multiplied by the receiver.
This method uses the default behavior when handling calculation errors and when rounding.
NSDecimalNumber.h
Multiplies the receiver by decimalNumber and returns the product, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByMultiplyingBy:(NSDecimalNumber *)decimalNumber withBehavior:(id < NSDecimalNumberBehaviors >)behavior
behavior specifies the handling of calculation errors and rounding.
NSDecimalNumber.h
Multiplies the receiver by 10^power and returns the product, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByMultiplyingByPowerOf10:(short)power
This method uses the default behavior when handling calculation errors and when rounding.
NSDecimalNumber.h
Multiplies the receiver by 10^power and returns the product, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByMultiplyingByPowerOf10:(short)power withBehavior:(id < NSDecimalNumberBehaviors >)behavior
behavior specifies the handling of calculation errors and rounding.
NSDecimalNumber.h
Returns a new NSDecimalNumber
object whose value is the value of the receiver raised to a given power.
- (NSDecimalNumber *)decimalNumberByRaisingToPower:(NSUInteger)power
The power to which to raise the receiver.
A new NSDecimalNumber
object whose value is the value of the receiver raised to the power power.
This method uses the default behavior when handling calculation errors and when rounding.
NSDecimalNumber.h
Raises the receiver to power and returns the result, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByRaisingToPower:(NSUInteger)power withBehavior:(id < NSDecimalNumberBehaviors >)behavior
behavior specifies the handling of calculation errors and rounding.
NSDecimalNumber.h
Rounds the receiver off in the way specified by behavior and returns the result, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberByRoundingAccordingToBehavior:(id < NSDecimalNumberBehaviors >)behavior
For a description of the different ways of rounding, see the roundingMode
method in the NSDecimalNumberBehaviors
protocol specification.
NSDecimalNumber.h
Returns a new NSDecimalNumber
object whose value is that of another given NSDecimalNumber
object subtracted from the value of the receiver.
- (NSDecimalNumber *)decimalNumberBySubtracting:(NSDecimalNumber *)decimalNumber
The number to subtract from the receiver.
A new NSDecimalNumber
object whose value is decimalNumber subtracted from the receiver.
This method uses the default behavior when handling calculation errors and when rounding.
NSDecimalNumber.h
Subtracts decimalNumber from the receiver and returns the difference, a newly created NSDecimalNumber
object.
- (NSDecimalNumber *)decimalNumberBySubtracting:(NSDecimalNumber *)decimalNumber withBehavior:(id < NSDecimalNumberBehaviors >)behavior
behavior specifies the handling of calculation errors and rounding.
NSDecimalNumber.h
Returns the receiver’s value, expressed as an NSDecimal
structure.
- (NSDecimal)decimalValue
The receiver’s value, expressed as an NSDecimal
structure.
NSDecimalNumber.h
Returns a string, specified according to a given locale, that represents the contents of the receiver.
- (NSString *)descriptionWithLocale:(NSDictionary *)locale
A dictionary that defines the locale (specifically the NSDecimalSeparator
) to use to generate the returned string.
A string that represents the contents of the receiver, according to locale.
NSDecimalNumber.h
Returns the approximate value of the receiver as a double
.
- (double)doubleValue
The approximate value of the receiver as a double
.
NSDecimalNumber.h
Returns an NSDecimalNumber
object initialized to represent a given decimal.
- (id)initWithDecimal:(NSDecimal)decimal
The value of the new object.
An NSDecimalNumber
object initialized to represent decimal.
This method is the designated initializer for NSDecimalNumber
.
NSDecimalNumber.h
Returns an NSDecimalNumber
object initialized using the given mantissa, exponent, and sign.
- (id)initWithMantissa:(unsigned long long)mantissa exponent:(short)exponent isNegative:(BOOL)flag
The mantissa for the new decimal number object.
The exponent for the new decimal number object.
A Boolean value that specifies whether the sign of the number is negative.
An NSDecimalNumber
object initialized using the given mantissa, exponent, and sign.
The arguments express a number in a type of scientific notation that requires the mantissa to be an integer. So, for example, if the number to be represented is 1.23, it is expressed as 123x10^–2—mantissa is 123; exponent is –2; and isNegative, which refers to the sign of the mantissa, is NO
.
NSDecimalNumber.h
Returns an NSDecimalNumber
object initialized so that its value is equivalent to that in a given numeric string.
- (id)initWithString:(NSString *)numericString
A numeric string.
Besides digits, numericString can include an initial “+” or “–”; a single “E” or “e”, to indicate the exponent of a number in scientific notation; and a single NSDecimalSeparator
to divide the fractional from the integral part of the number. For a listing of acceptable and unacceptable strings, see the class method decimalNumberWithString:locale:
.
An NSDecimalNumber
object initialized so that its value is equivalent to that in numericString.
NSDecimalNumber.h
Returns an NSDecimalNumber
object initialized so that its value is equivalent to that in a given numeric string, interpreted using a given locale.
- (id)initWithString:(NSString *)numericString locale:(NSDictionary *)locale
A numeric string.
Besides digits, numericString can include an initial “+” or “–”; a single “E” or “e”, to indicate the exponent of a number in scientific notation; and a single NSDecimalSeparator
to divide the fractional from the integral part of the number.
A dictionary that defines the locale (specifically the NSDecimalSeparator
) to use to interpret the number in numericString.
An NSDecimalNumber
object initialized so that its value is equivalent to that in numericString, interpreted using locale.
NSDecimalNumber.h
Returns a C string containing the Objective-C type of the data contained in the receiver, which for an NSDecimalNumber
object is always “d” (for double).
- (const char *)objCType
NSDecimalNumber.h
Names of the various exceptions raised by NSDecimalNumber
to indicate computational errors.
extern NSString *NSDecimalNumberExactnessException; extern NSString *NSDecimalNumberOverflowException; extern NSString *NSDecimalNumberUnderflowException; extern NSString *NSDecimalNumberDivideByZeroException;
NSDecimalNumberExactnessException
The name of the exception raised if there is an exactness error.
Available in Mac OS X v10.0 and later.
Declared in NSDecimalNumber.h
.
NSDecimalNumberOverflowException
The name of the exception raised on overflow.
Available in Mac OS X v10.0 and later.
Declared in NSDecimalNumber.h
.
NSDecimalNumberUnderflowException
The name of the exception raised on underflow.
Available in Mac OS X v10.0 and later.
Declared in NSDecimalNumber.h
.
NSDecimalNumberDivideByZeroException
The name of the exception raised on divide by zero.
Available in Mac OS X v10.0 and later.
Declared in NSDecimalNumber.h
.
NSDecimalNumber.h
© 2007 Apple Inc. All Rights Reserved. (Last updated: 2007-10-31)