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这个类保留接口传过来的精度。
还有%需要使用%%才能展示出%

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容