如何实现后台返回的数据有.00或.0,显示时若是整数不显示小数点和小数电以后的0,小数显示小数点

简介: 如何实现后台返回的数据有.00或.0,显示时若是整数不显示小数点和小数电以后的0,小数显示小数点

如何实现后台返回的数据有.00或.0,显示时若是整数不显示小数点和小数电以后的0,小数显示小数点。

解决方案,识别出这种整数,把它截去:

-(NSString *)getIntStrWithStr:(NSString *)str
{
    if(isCommonUnitEmptyString(str))
    {
        return @"";
    }
    if([str rangeOfString:@"."].location == NSNotFound)
    {
        return str;
    }
    NSInteger i = str.length-1;
    for(; i > 0; i--)
    {
        NSString *str1 = [str substringWithRange:NSMakeRange(i, 1)];
        if(!([str1 isEqualToString:@"0"] || [str1 isEqualToString:@"."]))
        {
            break;
        }
    }
    if(i+1 == str.length)
    {
        return str;
    }
    else
    {
        return [str substringToIndex:(i+1)];
    }
}

//判断字符串为空
static inline BOOL isCommonUnitEmptyString(NSString *str) {
    return ([str isKindOfClass:[NSNull class]] || str == nil || ![str isKindOfClass:[NSString class]] || [str length] < 1);
}

使用的方法

- (void)setModel:(LCNewYearDinnerModel *)model {
    _model = model;
    model.cost_price = [self getIntStrWithStr:model.cost_price];
    model.price = [self getIntStrWithStr:model.price];
    [self.originPrice setText:[NSString stringWithFormat:@"门店价格:¥%@", model.cost_price]];
    [self.price setText:[NSString stringWithFormat:@"¥%@", model.price]];
}

后台返回的数据:

  errcode = 1,
  data =  (
      {
      price = "1688.00",
      cost_price = "1888.00",
      use_start_time = "12.20",
      use_end_time = "01.30",
      suppliers_name = "兰小溪特色美食餐厅",
      goods_name = "年夜饭",
      goods_id = 132,
    },
  ),

目录
相关文章
|
3月前
|
C语言
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
这篇文章展示了如何使用栈(包括顺序栈和链栈)实现将十进制数值转换成八进制数值的方法,通过C语言编程演示了两种栈的实现方式和使用场景。
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
|
3月前
|
C# 图形学
小功能⭐️C#控制小数点后位数的方法
小功能⭐️C#控制小数点后位数的方法
|
6月前
|
算法
实现一个标准数字字符串四舍五入截取不指定位数的小数
实现一个标准数字字符串四舍五入截取不指定位数的小数
46 0
打印1到最大的n位数
1.题目概述 2.题解
49 0
用户输入数字,如果数字小于10,则在前面补0,比如01,09,如果数字大于10,则不需要补,比如 20
用户输入数字,如果数字小于10,则在前面补0,比如01,09,如果数字大于10,则不需要补,比如 20
158 0
判断数字位数
判断数字位数
68 0
|
C++
C++ 输出特定位数小数
C++ 输出特定位数小数
140 0
|
JavaScript
layui的totalRow默认为两位小数,按需要修改为整数
layui的totalRow默认为两位小数,按需要修改为整数
632 0
|
算法 Python
一日一技:如何统计一个数字的二进制值里面有多少个1
一日一技:如何统计一个数字的二进制值里面有多少个1
240 0
|
存储 前端开发 JavaScript
打印从1到最大的n位数
打印从1到最大的n位数
打印从1到最大的n位数