问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于json解析float数据精度的问题

发布网友 发布时间:2023-02-07 03:48

我来回答

1个回答

热心网友 时间:2024-03-22 17:02

在iOS开发过程中,如果server端接口传过来的接口数据是float类型的,通过用NSJSONSerialization进行数据解析后,会出现数据精度丢失的问题,安卓端没有发现这样的问题。
出现小数点后很多位小数的问题,导致UI显示,计算等的问题。

刚开始以为是数据加解密的问题,后来server和iOS端都去掉了加解密算法直接传输明文,也出现了这样的问题。所以排除数据加解密所导致这个想法。

打印结果

打印结果

这样存储,数据本来就是经度不对的,用作计算肯定出bug。

1、 float类型的两位数,而且是含有两位小数(两位以上或者一位都没问题),小数位第二位是0,十位数字是7、8、9;
2、float类型的一位数,各位是7、8、9,小数点后第一位是7、8、9。

备注:以上两种情况下都会出现这个问题(个人观点,有可能不对)。

如果在显示的时候只保留两位小数点,这样处理也可以,UI显示上不会有问题,但是数据本身是有问题的,如果计算之类的就不行了。

用NSNumberFormatter类进行转化

如果需要显示正确的字符串:

如果需要计算,处理数据后再给属性赋值

关于NSDecimalNumber
demo
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Request对象语法 9,django中request对象 塞尔达传说时之笛火之神殿Boss房间怎么去 ...的圆形地方怎么上去?打完BOSS后才发现没去过,但我 榆中兴隆山旅游路线 ...兴隆山校区到哪个公交车站最近?应该怎么乘公交车?打车的话得多少钱... 从般若寺到兴隆山法院怎么坐公交车,最快需要多久 那些属于国有经济,哪些属于集体经济 ...丢手机,生病,丢工作,怎么转运啊,谁能告诉我,我快疯了 阴历十月又叫什么月 2018-04-09(JSON.parse和JSON.stringify的编码解码) 谁能帮我定制一套减肥时间表 怎么样才可以用一个手机号码创建多个 怎么用同一个手机号码申请多个? 冷吃兔的情侣名 如何安全模式启动电脑? 如何编童话故事三年级 短视频进入存量怎么看 中国兵器工业205所招聘有年龄限制吗 他还没忘她,还会想她,怎么办? 逆水寒一块钱多少元宝 猴哥在垃圾箱捡到一块元宝不知该怎么办 梦见一个老人吹唢呐 锻炼三角肌把双臂平着张开静止锻炼对增大三角肌肉有效果吗 请问一下给别人担保贷款要满足什么条件? 怎么查登录记录呢? 郑州五险一金多少钱一个月多少钱一个月多少钱一个月 2022郑州社保缴费标准表 四川广安2008中考科目及分数 一个可以同时登陆两个吗? 分手厨房2如何调出存档 快播在哪下载?最好没毒的 已注销的银行卡还能退回转账钱吗? 大学非计算机专业每个学期都有计算机课程呢 手机空号怎么接受接收短信吗? 小冰雹的小作文 以《冰雹来了》为题写一篇作文 越南手机代码多少 日完软差不多的搞笑读法 语文课上、女老师问“软”的拼音怎么读?男生齐喊:“日完--软.”老师... “日”字是如何定义为脏话的? 怎样才能一次打印EXCEL工作表? 方舟雪鸮如何加大回血 方舟维京湾雪鸮在哪刷新 方舟雪鸮鞍几级解锁 方舟雪鸮回血比例 方舟畸变有镰刀龙吗 我有一张银行卡,里面没钱,长时间不用会不会自动注销啊??要多久时间呢? 镌云堂:令人醉心的汉砖遗韵 农业银行借记卡几年不用了,里面没钱了,银行会自动销户吗?就是说没有这个卡号了 有一张银行卡里面没钱,到多久自动注销啊