美文网首页
ios使用后台接受float类型出现精度不准

ios使用后台接受float类型出现精度不准

作者: guoguojianshu | 来源:发表于2021-10-30 09:27 被阅读0次

方案1:NSDecimalNumber做处理
开发中处理处理价格金额问题, 后台经常返回float、double类型, 打印或转成NSString都会有精度丢失问题, 因此使用系统自带的NSDecimalNumber做处理, 能解决这问题:

处理精度有关的数据先把数据转成double类型

此处我是以string方式接收的,直接添加NSString的分类,修正方法贴出来如下:

+(NSString )reviseString:(NSString )string{

/* 直接传入精度丢失有问题的Double类型*/

double conversionValue = (double)[string floatValue];

NSString *doubleString = [NSString stringWithFormat:@"%lf", conversionValue];

NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];

return [decNumber stringValue];

}

方案二:写一个NSString的扩展
@interface NSString (MCPriceString)

  • (NSString *)mc_priceString;

@end

@implementation NSString (MCPriceString)

  • (NSString *)mc_priceString {

static NSNumberFormatter *formatter;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

formatter = [[NSNumberFormatter alloc] init];

formatter.maximumFractionDigits = 2;

formatter.minimumIntegerDigits = 1;

});

return [formatter stringFromNumber:[formatter numberFromString:self]];

}

@end

formatter.maximumFractionDigits = 2;表示最多保留两位小数

formatter.minimumIntegerDigits = 1;表示最少保留一位整数,防止像0.01出现.01的情况。

相关文章

  • ios使用后台接受float类型出现精度不准

    方案1:NSDecimalNumber做处理开发中处理处理价格金额问题, 后台经常返回float、double类型...

  • iOS开发中遇到的坑

    1.iOS中NSString类型转换成Float类型会出现精度不准确的问题,如果用于数字的比较会出现比较大大问题!...

  • NSDecimalNumber 四则运算

    后台返回97.70,若使用float类型接收时,就会发现数据精度发生了改变,iOS客户端收到了“97.699999...

  • iOS 浮点数的精确计算和四舍五入问题

    iOS开发中,使用浮点数(float,double)类型运算需要注意计算精度的问题。即使只是两位小数,也会出现误差...

  • iOS NSDecimalNumber货币计算

    在iOS开发中,遇到和货币价格计算相关的,对计算精度要求比较高。使用float类型运算,经常出现误差。为了解决这种...

  • NSDecimalNumber

    在iOS开发中,进场遇到货币价格相关的计算,这是我们需要注意计算精度的问题。使用float类型运算,经常出现误差,...

  • iOS中NSDecimalNumber使用

    在iOS开发中,经常遇到和货币价格计算相关的,这时就需要注意计算精度的问题。使用float类型运算,经常出现误差。...

  • JSONObject获取Float类型数据会造成精度获取不准确解

    问题:JSONObject获取Float类型数据会造成精度获取不准确 解决办法:将Float类型数据数据先转换成S...

  • hive查找float数据精度问题

    在hive表中查找某个字段值为float类型的数据时,float类型可能存在精度问题造成的比较不准确http://...

  • NSDecimalNumber的用法

    在iOS开发中,和货币价格计算相关的,需要注意计算精度的问题。即使只是两位小数,也会出现误差。使用float类型运...

网友评论

      本文标题:ios使用后台接受float类型出现精度不准

      本文链接:https://www.haomeiwen.com/subject/qvhgaltx.html