iOS 字符串转换数字单位 不四舍五入

/**
 初始化方法
 
 @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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。