问题
项目中需要用到比例这一个字段,接口返回的是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这个类保留接口传过来的精度。
还有%需要使用%%才能展示出%
网友评论