iOS开发:货币的精确计算


iOS开发:货币的精确计算


一,问题

在做iOS移动端的支付时遇到了一个问题:支付宝支付是直接传入订单金额,而微信支付的单位是以分为单位,需要将订单金额乘以100后取整,因此二导致你的订单的金额与实际的支付金额相差1分钱。解决方法:



//支付金额: paymentAmountString

    //订单金额的单位:元

    NSDecimalNumber *realPaymentAmount = [NSDecimalNumber decimalNumberWithString:@"paymentAmountString"];


    //微信支付单位:分

    NSDecimalNumber *exAmount = [NSDecimalNumber decimalNumberWithString:@"100"];

    

    NSDecimalNumber *wxPayAmount = [realPaymentAmount decimalNumberByMultiplyingBy:exAmount];

    NSLog(@"微信支付的数据: %d",wxPayAmount.intValue);

    




二,原因分析

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值