NSDecimalNumber

#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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值