iOS 转json浮点型数据丢失精度

前几天项目中遇到一个商品价格丢失精度的问题。

服务端返回的价格是number类型;在这里插入图片描述
我用上面的方式,将接受到的二进制数据responseObject转成json发现价格是80.0400000000001;但是安卓同事说他接收到的数据就是80.04。然后我就怀疑是转json的时候,丢失的精度。在这里插入图片描述
索性直接把二进制ut8编码成字符串,发现价格确实是80.04。然后开始查json序列化的时候出现了什么问题。最后也没找到json序列化中间的解决办法,看网上说服务端穿float数据,最好用字符串,number的话就会丢失精度。

最后的处理方式是:
[NSString stringWithFormat:@"%.2f" , [price floatValue]];

通过stringWithFormat:方法保留小数点后两位,这种方式会对小数点后第三位开始四舍五入。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值