#pragma mark- 创建一个十进位数字
/**
* 创建一个十进位数字等同与给定的十进位结构
*/
+ (NSDecimalNumber *)decimalNumberWithDecimal:(NSDecimal)dcm;
/**
* 创建并返回一个与参数指定的数字相等的十进制数
*/
+ (NSDecimalNumber *)decimalNumberWithMantissa:(unsigned long long)mantissa exponent:(short)exponent isNegative:(BOOL)flag;
/**
* 创建并返回一个与参数指定的数字相等的十进制数
*/
+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numberValue;
/**
* 创建并返回一个与参数指定的数字相等的十进制数
* param locale locale代表一种格式,就像date的格式化一样。这里的locale可以传递两种格式
* eg
//NSDictionary类型:
NSDictionary *locale = [NSDictionary dictionaryWithObject:@"," forKey:NSLocaleDecimalSeparator]; //以","当做小数点格式
//NSLocale类型:
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"]; //法国数据格式,法国的小数点是','逗号
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:@"1,256" locale:locale];
*/
+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numberValue locale:(nullable id)locale;
+(NSDecimalNumber *)one;
+(NSDecimalNumber *)zero;
+(NSDecimalNumber *)notANumber;
#pragma mark -初始化一个十进制数
- (instancetype)initWithDecimal:(NSDecimal)dcm;
- (instancetype)initWithMantissa:(unsigned long long)mantissa exponent:(short)exponent isNegative:(BOOL)flag;
- (instancetype)initWithString:(NSString *)numberValue;
- (instancetype)initWithString:(NSString *)numberValue locale:(id)locale;
#pragma mark -执行运算
- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber;
- (NSDecimalNumber *)decimalNumberBySubtracting:(NSDecimalNumber *)decimalNumber;
- (NSDecimalNumber *)decimalNumberByMultiplyingBy:(NSDecimalNumber *)decimalNumber;
- (NSDecimalNumber *)decimalNumberByDividingBy:(NSDecimalNumber *)decimalNumber;
- (NSDecimalNumber *)decimalNumberByRaisingToPower:(NSUInteger)power;
- (NSDecimalNumber *)decimalNumberByMultiplyingByPowerOf10:(short)power;
- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber withBehavior:(id<NSDecimalNumberBehaviors>)behavior;
- (NSDecimalNumber *)decimalNumberBySubtracting:(NSDecimalNumber *)decimalNumber withBehavior:(id<NSDecimalNumberBehaviors>)behavior;
- (NSDecimalNumber *)decimalNumberByMultiplyingBy:(NSDecimalNumber *)decimalNumber withBehavior:(nullable id<NSDecimalNumberBehaviors>)behavior;
- (NSDecimalNumber *)decimalNumberByDividingBy:(NSDecimalNumber *)decimalNumber withBehavior:(nullable id<NSDecimalNumberBehaviors>)behavior;
- (NSDecimalNumber *)decimalNumberByRaisingToPower:(NSUInteger)power withBehavior:(nullable id<NSDecimalNumberBehaviors>)behavior;
- (NSDecimalNumber *)decimalNumberByMultiplyingByPowerOf10:(short)power withBehavior:(nullable id<NSDecimalNumberBehaviors>)behavior;
#pragma mark -四舍五入
/**
* 使用指定的四舍五入行为返回一个十进制数
eg :
//NSRoundPlain 四舍五入 NSRoundDown 只舍不入 NSRoundUp 只入不舍 NSRoundBankers 也是四舍五入,如果精确的那位是5,它要看精确度的前一位是偶数还是奇数,如果是奇数,则入,偶数则舍,例如scale=1,表示精确到小数点后一位, NSDecimalNumber 为1.25时,NSRoundPlain结果为1.3,而NSRoundBankers则是1.2
NSDecimalNumberHandler* roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *ouncesDecimal;
NSDecimalNumber *roundedOunces;
ouncesDecimal = [[NSDecimalNumber alloc] initWithFloat:1.246];
roundedOunces = [ouncesDecimal decimalNumberByRoundingAccordingToBehavior:roundingBehavior]
*/
- (NSDecimalNumber *)decimalNumberByRoundingAccordingToBehavior:(id<NSDecimalNumberBehaviors>)behavior;
NSDecimalNumber
最新推荐文章于 2020-12-22 06:41:46 发布