货币计算

iOS货币计算最佳实践

   NSDecimalNumber *userNum = [NSDecimalNumber decimalNumberWithString:@"0.1"];

            

            NSDecimalNumber *userMoney = [multiplierAll decimalNumberByMultiplyingBy:userNum];//优惠金额

            NSString *v1 = [userMoney stringValue];

            

            NSDecimalNumber *shengpai = [multiplierAll decimalNumberBySubtracting:userMoney];// 总额 - 优惠

            NSString *a1 = [shengpai stringValue];

            

            NSDecimalNumber *shengyou = [multiplicandSpecial decimalNumberBySubtracting:userMoney];

            NSString *s1 = [shengyou stringValue];

货币计算 最好用NSDecimalNumber进行科学计数

总的来说,对于货币计算,应该需要注意精度的问题。同时在运算的时候,应该优先选用框架提供的API,否则,就应该使用足够精度的类型运算,同时对自己写的接口进行足够的说明,要求开发者按照规范来使用。

在自己不能保证足够准确的情况下,用适当的说明的要求来规避责任还是可以接受的。至少被人抱怨两句总比出错强。

在iOS开发中,和货币价格计算相关的,需要注意计算精度的问题。即使只是两位小数,也会出现误差。使用float类型运算,是完全不够的。经过一番测试,最后选择使用系统提供的API的NSDecimalNumber来进行更好的解决。

转载于:https://my.oschina.net/u/1244672/blog/616550

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值