周五的时候QA测出一个取现操作失败的bug,跟踪了数据走向,发现是由于double类型的数值在转换成JSON字符串的时候精度丢失导致的。
解决方案:使用iOS中的专门用来处理精度的对象NSDecimalNumber
1 | NSString *doubleString = [NSString stringWithFormat:@"%lf", num]; |
结合到自身项目中,因为这个“钱”是从服务器请求过来,到最后又传回给服务器的,在这个过程中值不会变,所以,可以在拿到服务器的返回值时,先将“钱”利用上述代码转成NSString类型,这样在模型转JSON字符串的时候就不会有double到NSString的转换,从而也避免了精度丢失的问题。