NSDecimalNumber

匿名 (未验证) 提交于 2019-12-03 00:22:01
#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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!