iOS 处理服务器返回的浮点数数据
来源:互联网 发布:mac炒股软件 知乎 编辑:程序博客网 时间:2024/06/10 11:33
iOS开发遇到的一个问题:
对服务器返回的价格数据,直接转为字符串保存展示,服务器转过来的价格 如9.89,保存为字符串之后 变为了9.890000000000001。
处理过程为:
服务器返回的json 数据 为 responseString = {“code”:200000,”msg”:”ok”,”data”:[{“id”:34,”name”:”补胎”,”serviceParts”:[],”timeFeePrice”:9.89,”timeFeeOriginalPrice”:50.0}]}
我们看到json 数据里面 浮点数据 timeFeePrice = 9.89
responseObject = [NSJSONSerialization JSONObjectWithData:data options:self.readingOptions error:&serializationError];
经过系统json 转化为 NSDictionary* responseObject 后,打印responseObject 为
code = 200000; data = ( { id = 34; name = "\U8865\U80ce"; serviceParts = ( ); timeFeeOriginalPrice = 50; timeFeePrice = "9.890000000000001"; } ); msg = ok;
我们看到打印出来的 timeFeePrice = “9.890000000000001”;
因为 十进制数字“9.89”不能完全代表一个二进制浮点数等float或double。所以“舍入浮9.89”没有意义,因为没有完全等于9.89浮动。
你只能指定一个精度将浮点数转换为十进制输出字符串。您可以使用一个NSNumberFormatter或printf-format像”%.f
所以处理服务器返回的浮点数数据时,需要设置小数点位数。
价格数据处理,建议服务器统一使用分作为单位,传整形价格数据过来,客户端统一%100转元处理。
- iOS 处理服务器返回的浮点数数据
- ios开发-处理服务器返回的日期
- 服务器返回空数据的处理方法
- Android处理服务器返回的图片数据
- 服务器返回数据的json处理
- VB的浮点数处理
- VB的浮点数处理
- c++浮点数的处理
- IOS 中的服务器返回数据(null)和 <null>的处理方法
- iOS 封装一个 Date处理服务器中返回的时间
- iOS开发服务器返回(null) 与<null>的处理
- Java中浮点数的处理
- JS中浮点数四舍五入的处理
- float浮点数的溢出处理
- BigDecimal 处理高精度的浮点数
- JAVA中浮点数的处理
- js处理浮点数的加减乘除
- iOS开发:过滤网络请求中,服务器返回空值null数据的处理(过滤null显示问题)
- 正则后台验证、抓包
- Android计算器
- iOS9适配必看指南
- iOS-Git使用详解
- 【C++】原型模式
- iOS 处理服务器返回的浮点数数据
- 完整精确导入Kernel与Uboot参与编译了的代码到Source Insight,Understand, SlickEdit
- 指针的指针
- 安卓JNI使用C++类
- 数据库基础
- 导出excel 利用xml文件
- Linux 系统挂载数据盘
- PHPCMS V9自定义分页函数
- C++STL之Set集合容器