/**
初始化方法
@param roundingMode 舍入方式{
NSRoundDown, // Always down == truncate //只舍不入
NSRoundUp, // Always up // 只入不舍
NSRoundBankers // on a tie round so last digit is even 貌似四舍五入
}
@param scale 小数点后舍入值的位数。
@param exact 精度错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
@param overflow 溢出错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
@param underflow 下溢错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
@param divideByZero 除以0的错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
@return NSDecimalNumberHandler对象
*/
- (NSString *)stringCount:(NSString *)string unit:(NSInteger)unit{
if (!string || !string.length) {
return @"";
}
NSString *tempStr;
NSInteger scaleNum;
NSInteger intValue = string.integerValue;
if (intValue>=10000) {
if (intValue%10>0) {
scaleNum = 4;
}else if (intValue%100>0){
scaleNum = 3;
}else if (intValue%1000>0){
scaleNum = 2;
}else if (intValue%10000>0){
scaleNum = 1;
}else{
scaleNum = 0;
}
NSDecimalNumberHandler *hander = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown
scale:scaleNum
raiseOnExactness:NO
raiseOnOverflow:NO
raiseOnUnderflow:NO
raiseOnDivideByZero:NO];
NSDecimalNumber *num = [[NSDecimalNumber decimalNumberWithString:string] decimalNumberByDividingBy :[NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%ld",(long)unit]] withBehavior:hander];
return [NSString stringWithFormat:@"%@",num];
}else{
return string;
}
return tempStr;
}
网友评论