zoukankan      html  css  js  c++  java
  • NSNumber 和 NSString 转换

    直接上实例:

    什么目的呢?  // @98.9899999 ---> @"98.989999"

    让服务器返回的整数还是整数, 返回小数多了我们就只保留两位, 从模型上修改, 这个思想很重要,凡是引用到地方自己自动变,而不是每个地方都去修改,抛砖引玉,希望对各位有所帮助

    - (NSNumber *)dealNumber:(NSNumber *)sourceNumber

    {

        NSString *str = [sourceNumber description];

      

      NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^\d+\.\d{2}" options:NSRegularExpressionCaseInsensitive error:nil];

        

        NSArray *results = [regex matchesInString:str options:NSMatchingReportCompletion range:NSMakeRange(0, str.length)];

        

        for (NSTextCheckingResult *result in results) {

            HMLog(@"%@", [str substringWithRange:result.range]);

        }

        

        // 小数点的位置

        NSUInteger dotIndex = [str rangeOfString:@"."].location;

        if (dotIndex != NSNotFound && str.length - dotIndex > 2) { // 小数超过2位

            str = [str substringToIndex:dotIndex + 3];

        }

        //有个NSNumberFormatter类,不常用,可以把num转变成string,而不用先变成 float,再转变成str,会有精度损失

        NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];

        return [fmt numberFromString:str];

    }

    - (void)setList_price:(NSNumber *)list_price

    {

        // @98.9899999 ---> @"98.989999"

        _list_price = [self dealNumber:list_price];

    }

    - (void)setCurrent_price:(NSNumber *)current_price

    {

        _current_price = [self dealNumber:current_price];

    }

  • 相关阅读:
    (打包报错)AS打包报错:Generate Signed APK: Errors while building APK. You can find the errors in the 'Messages' view.
    NABCD
    石家庄地铁站项目最终总结报告
    团队冲刺2.7
    团队冲刺2.6
    团队冲刺2.5
    团队冲刺2.4
    团队冲刺2.3
    用户体验评价——win10自带微软拼音输入法
    团队冲刺2.2
  • 原文地址:https://www.cnblogs.com/BinZone/p/4375515.html
Copyright © 2011-2022 走看看