美文网首页
NSDecimalNumber修复精度问题

NSDecimalNumber修复精度问题

作者: Smallwolf_JS | 来源:发表于2021-01-04 16:08 被阅读0次

json 解析double类型多出几位小数,利用NSDecimalNumber修复

后台返回float类型数据8.2,实际用AFN的json解析后得到8.1999999999,该怎么处理呢

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

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

+(NSString )reviseString:(NSString )string{

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

double conversionValue        = (double)[string floatValue];

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

NSDecimalNumber *decNumber    = [NSDecimalNumber decimalNumberWithString:doubleString];

return [decNumber stringValue];

}
···

相关文章

  • NSDecimalNumber修复精度问题

    json 解析double类型多出几位小数,利用NSDecimalNumber修复 后台返回float类型数据8....

  • iOS中需要谨慎对待8.2这个数字

    咱们在开发中为了防止浮点数有精度问题,特意有NSDecimalNumber进行计算,来解决精度问题。 但是在开发中...

  • 解决货币精度问题(NSDecimalNumber)

    在项目中经常使用到货币的结算问题,但是货币的精度问题真的很让人头疼~~不论你是用float类型还是double类型...

  • 链式编程之科学计算

    前段时间因为经常遇到数值的计算,本来用➕➖✖️➗。但是遇到精度问题,所以必须得用NSDecimalNumber类,...

  • 关于高精度数据精度丢失

    使用系统提供的NSDecimalNumber来处理,可以避免精度丢失。

  • 关于OC中的精度计算NSDecimalNumber

    //NSDecimalNumber是NSNumber的子类,是苹果针对浮点型计算时存在精度计算误差的问题而提供的一...

  • 关于精度处理

    有时会遇到价格类似精度的问题,尤其是float相减时遇到的差距,处理方案:转为NSDecimalNumber类型 ...

  • NSDecimalNumber精度计算

    场景: 我们在做金钱计算的时候会遇到一个问题,就是精确的问题,许多项目尤其是电商类项目都会涉及到,就是当我们对价格...

  • NSDecimalNumber 介绍

    NSDecimalNumber是NSNumber的不可变子类。苹果针对浮点型计算时存在精度计算误差的问题而提供的一...

  • 2019-08-14

    NSDecimalNumber是NSNumber的不可变子类。苹果针对浮点型计算时存在精度计算误差的问题而提供的一...

网友评论

      本文标题:NSDecimalNumber修复精度问题

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