美文网首页
截取小数点前后位数

截取小数点前后位数

作者: sfandy | 来源:发表于2016-09-27 13:32 被阅读66次
    需求:显示需要保留小数点前两位,小数点后两位。
     /**
     *  截取
     *
     *  @param text   文本
     *  @param preInt 保留小数点前几位
     *  @param decInt 保留小数点后几位
     */
    - (NSString*)subStringWithString:(NSString*)text subPre:(NSInteger)preInt subDec:(NSInteger)decInt{
        NSString *result = @"";
        if (!text || [text isEqualToString:@""]) {
            return result;
        }
        NSArray *array = [text componentsSeparatedByString:@"."];
        if (!array || array.count<=0) {
            return result;
        }
      //有小数(包含.12、0.12、12.、12.0的情况)
      if (array.count==2) {
          NSString *intValue = @"";
          NSString *floatValue = @"";
          NSString *intText = [array objectAtIndex:0];
          NSString *floatText = [array objectAtIndex:1];
    
          intValue = intText.length>=preInt ? [intText substringWithRange:NSMakeRange((intText.length - preInt), preInt)]:intText;
          floatValue = floatText.length>=decInt ? [floatText substringWithRange:NSMakeRange(0, decInt)]:floatText;
    
          intValue = [intValue isEqualToString:@""]? @"0":intValue;
          floatValue = [floatValue isEqualToString:@""]? @"0":floatValue;
    
       if ([intValue isEqualToString:@"0"] && [floatValue isEqualToString:@"0"]) {
           result = @"";
        }else{
           result = [NSString stringWithFormat:@"%@.%@",intValue,floatValue];
        }
      }
    
      //没有小数
      if (array.count==1) {
          NSString *intText = [array objectAtIndex:0];
          result = intText.length>=preInt ? [intText substringWithRange:NSMakeRange((intText.length - preInt), preInt)]:text;
      }
    
      return result;
    }
    

    相关文章

      网友评论

          本文标题:截取小数点前后位数

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