iOS-计算数据之后转成string精度保留

问题

项目中需要用到比例这一个字段,接口返回的是string类型的字符串,比如 ,我们需要展示成20%,接口给的是0.2。一开始是没有问题的,后来客户要求这个比例的范围需要增多,然后iOS端数据处理出现问题了。 0.005展示为0%

解决

问题代码

- (NSString *)scaleStr {
   return [NSString stringWithFormat:@"%.0f%%",[_model.scale floatValue]*100];
}

修改后

- (NSString *)scaleStr {
    NSString *rate = [NSString stringWithFormat:@"%f", [_model.scale floatValue]*100];
    NSDecimalNumber *dn = [NSDecimalNumber decimalNumberWithString:rate];
    NSString *rateString = [NSString stringWithFormat:@"%@%%", dn.stringValue];
    return rateString;
}

用到了NSDecimalNumber这个类保留接口传过来的精度。
还有%需要使用%%才能展示出%

你可能感兴趣的:(iOS-计算数据之后转成string精度保留)