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];

    }

  • 相关阅读:
    C# 委托应用总结
    C语言指针总结
    SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
    C#接口
    C# Linq
    C#反射
    重写与重载
    mysql01
    ajax
    bootstrap02导航菜单
  • 原文地址:https://www.cnblogs.com/BinZone/p/4375515.html
Copyright © 2011-2022 走看看