美文网首页
解决货币精度问题(NSDecimalNumber)

解决货币精度问题(NSDecimalNumber)

作者: 那片阳光已醉 | 来源:发表于2017-06-05 12:46 被阅读89次

在项目中经常使用到货币的结算问题,但是货币的精度问题真的很让人头疼~~不论你是用float类型还是double类型在累加的时候好像总是精度不够呢

  • 这里我们就使用到了NSDecimalNumber货币类了,初始化对象
    NSDecimalNumber *decimal = [[NSDecimalNumber alloc]initWithString:string];
  • 价格的累加,decimalNumberByAdding:。货币累的累加并不能像其他的基本数据类型似的 +=或者 ++,这里的计算只能使用一个NSDecimalNumber类型的对象承接上一个对象的数据。
    NSDecimalNumber *totalPrice = [self getDecimalPriceWithNum:@"0"];
//计算总价 确保精度
            NSDecimalNumber *getPrice = [self getDecimalPriceWithNum:[NSString stringWithFormat:@"%@",price]];
            defaultPrice = totalPrice;
            totalPrice = [defaultPrice decimalNumberByAdding:getPrice];```
![示例图片](https://img.haomeiwen.com/i1401151/a3db98c1acd7b3b6?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

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

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

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

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

  • NSDecimalNumber修复精度问题

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

  • NSDecimalNumber

    涉及到金额时的计算往往要求保留很高的精度,NSDecimalNumber很好的解决了这个问题,而你不需要再没次都想...

  • iOS 浮点类型精度丢失问题

    苹果提供的解决方案:NSDecimalNumber 针对浮点类型计算精度问题提供的计算类,基于十进制的科学计数法来...

  • 链式编程之科学计算

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

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

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

  • 关于OC中的精度计算NSDecimalNumber

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

  • 关于精度处理

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

  • NSDecimalNumber精度计算

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

网友评论

      本文标题:解决货币精度问题(NSDecimalNumber)

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