美文网首页
项目方法集合HTools(3)

项目方法集合HTools(3)

作者: 阿洋12138 | 来源:发表于2018-07-10 15:20 被阅读12次

    这是我在项目中慢慢积累的方法集合,有些是自己写的,有些是觉得网上的写的挺好的就给自己搬过来了。

    github地址链接:https://github.com/KingXcode/HTTools

    • NSString+HTBigNums.h这个分类是进行高精度计算方法的集合
    - (NSString * (^)(NSString *number))add;        //加
    - (NSString * (^)(NSString *number))sub;        //减
    - (NSString * (^)(NSString *number))multiply;   //乘
    - (NSString * (^)(NSString *number))divid;      //除
    /**
     传参是无符号整型的字符串
     */
    - (NSString * (^)(NSString *number))raisingToPower;//number次方
    /**
     传参是short字符串
     */
    - (NSString * (^)(NSString *number))multiplyingByPowerOf10;//乘以 10的number次方
    
    

    加法:@"10".add(@"10");
    减法:@"10".sub(@"10");
    乘法:@"10".multiply(@"10");
    除法:@"10".divid(@"10");

    混合计算:@"10".add(@"10").sub(@"1").multiply(@"3");

    - (NSString *(^)(NSString *))add
    {
        return ^(NSString *number) {
            NSDecimalNumber *first = [NSDecimalNumber decimalNumberWithString:self];
            NSDecimalNumber *second = [NSDecimalNumber decimalNumberWithString:number];
            NSDecimalNumber *result = [first decimalNumberByAdding:second];
            return result.stringValue;
        };
    }
    
    - (NSString *(^)(NSString *))sub
    {
        return ^(NSString *number) {
            NSDecimalNumber *first = [NSDecimalNumber decimalNumberWithString:self];
            NSDecimalNumber *second = [NSDecimalNumber decimalNumberWithString:number];
            NSDecimalNumber *result = [first decimalNumberBySubtracting:second];
            return result.stringValue;
        };
    }
    
    - (NSString *(^)(NSString *))multiply
    {
        return ^(NSString *number) {
            NSDecimalNumber *first = [NSDecimalNumber decimalNumberWithString:self];
            NSDecimalNumber *second = [NSDecimalNumber decimalNumberWithString:number];
            NSDecimalNumber *result = [first decimalNumberByMultiplyingBy:second];
            return result.stringValue;
        };
    }
    
    - (NSString *(^)(NSString *))divid
    {
        return ^(NSString *number) {
            NSDecimalNumber *first = [NSDecimalNumber decimalNumberWithString:self];
            NSDecimalNumber *second = [NSDecimalNumber decimalNumberWithString:number];
            NSDecimalNumber *result = [first decimalNumberByDividingBy:second];
            return result.stringValue;
        };
    }
    - (NSString *(^)(NSString *))raisingToPower
    {
        return ^(NSString *number) {
            NSDecimalNumber *first = [NSDecimalNumber decimalNumberWithString:self];
            NSDecimalNumber *second = [NSDecimalNumber decimalNumberWithString:number];
            NSDecimalNumber *result = [first decimalNumberByRaisingToPower:second.unsignedIntegerValue];
            return result.stringValue;
        };
    }
    
    - (NSString *(^)(NSString *))multiplyingByPowerOf10
    {
        return ^(NSString *number) {
            NSDecimalNumber *first = [NSDecimalNumber decimalNumberWithString:self];
            NSDecimalNumber *second = [NSDecimalNumber decimalNumberWithString:number];
            NSDecimalNumber *result = [first decimalNumberByMultiplyingByPowerOf10:second.shortValue];
            return result.stringValue;
        };
    }
    

    相关文章

      网友评论

          本文标题:项目方法集合HTools(3)

          本文链接:https://www.haomeiwen.com/subject/bgofpftx.html