//
|
// NSDecimalNumber+Addtion.h
|
// 有应用应用
|
//
|
// Created by xuliying on 15/10/15.
|
// Copyright (c) 2015年 xly. All rights reserved.
|
//
|
|
#import <Foundation/Foundation.h>
|
|
typedef NS_ENUM(NSInteger, calculationType) {
|
Add,
|
Subtract,
|
Multiply,
|
Divide
|
};
|
|
|
typedef enum : NSInteger {
|
|
LMJDY = NSOrderedDescending, // 大于号
|
LMJXY = NSOrderedAscending, // 小于号
|
LMJDD = NSOrderedSame, // 相等
|
|
} LMJMoneyCompare;
|
|
@interface NSDecimalNumber (Addtion)
|
|
|
/**
|
高精度加减乘除
|
|
@param stringOrNumber1 第一个数字
|
@param type 加减乘除
|
@param stringOrNumber2 第二个数字
|
@param handler 处理类型
|
|
@return 对象
|
*/
|
+(NSDecimalNumber *)aDecimalNumberWithStringOrNumberOrDecimalNumber:(id)stringOrNumber1 type:(calculationType)type anotherDecimalNumberWithStringOrNumberOrDecimalNumber:(id)stringOrNumber2 andDecimalNumberHandler:(NSDecimalNumberHandler *)handler;
|
|
|
/**
|
2个数字的比较
|
*/
|
+(NSComparisonResult)aDecimalNumberWithStringOrNumberOrDecimalNumber:(id)stringOrNumber1 compareAnotherDecimalNumberWithStringOrNumberOrDecimalNumber:(id)stringOrNumber2;
|
|
|
/**
|
把一个数字放大或者缩小
|
|
*/
|
+(NSString *)stringWithDecimalNumber:(NSDecimalNumber *)str1 scale:(NSInteger)scale;
|
|
|
/**
|
比较
|
|
*/
|
extern NSComparisonResult StrNumCompare(id str1,id str2);
|
|
|
/**
|
处理数字
|
*/
|
extern NSDecimalNumber *handlerDecimalNumber(id strOrNum,NSRoundingMode mode,int scale);
|
|
|
|
/**
|
比较
|
*/
|
extern NSComparisonResult SNCompare(id strOrNum1,id strOrNum2);
|
|
|
|
/**
|
加减乘除
|
*/
|
extern NSDecimalNumber *SNAdd(id strOrNum1,id strOrNum2);
|
extern NSDecimalNumber *SNSub(id strOrNum1,id strOrNum2);
|
extern NSDecimalNumber *SNMul(id strOrNum1,id strOrNum2);
|
extern NSDecimalNumber *SNDiv(id strOrNum1,id strOrNum2);
|
|
|
|
/**
|
比较厚返回小数字
|
|
*/
|
extern NSDecimalNumber *SNMin(id strOrNum1,id strOrNum2);
|
extern NSDecimalNumber *SNMax(id strOrNum1,id strOrNum2);
|
|
|
extern NSDecimalNumber *SNAdd_handler(id strOrNum1,id strOrNum2,NSRoundingMode mode,int scale);
|
extern NSDecimalNumber *SNSub_handler(id strOrNum1,id strOrNum2,NSRoundingMode mode,int scale);
|
extern NSDecimalNumber *SNMul_handler(id strOrNum1,id strOrNum2,NSRoundingMode mode,int scale);
|
extern NSDecimalNumber *SNDiv_handler(id strOrNum1,id strOrNum2,NSRoundingMode mode,int scale);
|
|
|
extern NSDecimalNumber *SNMin_handler(id strOrNum1,id strOrNum2,NSRoundingMode mode,int scale);
|
extern NSDecimalNumber *SNMax_handler(id strOrNum1,id strOrNum2,NSRoundingMode mode,int scale);
|
|
|
@end
|