iOS 当请求到的数据是double类型,会失去精准度,并且去掉小数点后的0

首先请求到的数据都会变成字符串,先将字符串转化为double类型

double fdouble = [str doubleValue];

然后再设置小数点后的位数

[NSString stringWithFormat:@"%.1f", fdouble];

重点:  提供一个NSSing的扩展,传入需要保留的小数位,返回字符串。并且去掉末尾的0.

#import <Foundation/Foundation.h>

@interface NSString (EliminateZero)

//   integer  必传
- (NSString *)eliminateZeroWithDouble:(NSInteger)integer; @end #import "NSString+EliminateZero.h" @implementation NSString (EliminateZero) - (NSString *)eliminateZeroWithDouble:(NSInteger)integer{ NSString *str = [self copy]; double fdouble = [str doubleValue]; NSString *ftotal;
switch (integer) {
case :
ftotal = [NSString stringWithFormat:@"%.1f", fdouble];
break;
case :
ftotal = [NSString stringWithFormat:@"%.2f", fdouble];
break;
case :
ftotal = [NSString stringWithFormat:@"%.3f", fdouble];
break;
case :
ftotal = [NSString stringWithFormat:@"%.4f", fdouble];
break;
case :
ftotal = [NSString stringWithFormat:@"%.5f", fdouble];
break;
default:
break;
} while ([ftotal hasSuffix:@""]) {
ftotal = [ftotal substringToIndex:[ftotal length]-];
} if ([ftotal hasSuffix:@"."]) {
ftotal = [ftotal substringToIndex:[ftotal length]-];
} return ftotal; } @end
上一篇:Android笔记---使用HttpClient发送POST和GET请求


下一篇:LinkedList源码阅读笔记(基于JDK1.8)