iOS 当请求到的数据是double类型,会失去精准度,并且去掉小数点后的0
Posted &清风&
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 1: ftotal = [NSString stringWithFormat:@"%.1f", fdouble]; break; case 2: ftotal = [NSString stringWithFormat:@"%.2f", fdouble]; break; case 3: ftotal = [NSString stringWithFormat:@"%.3f", fdouble]; break; case 4: ftotal = [NSString stringWithFormat:@"%.4f", fdouble]; break; case 5: ftotal = [NSString stringWithFormat:@"%.5f", fdouble]; break; default: break; } while ([ftotal hasSuffix:@"0"]) { ftotal = [ftotal substringToIndex:[ftotal length]-1]; } if ([ftotal hasSuffix:@"."]) { ftotal = [ftotal substringToIndex:[ftotal length]-1]; } return ftotal; } @end
以上是关于iOS 当请求到的数据是double类型,会失去精准度,并且去掉小数点后的0的主要内容,如果未能解决你的问题,请参考以下文章