用MJExtension把字典转为model时碰到的坑.

因为app原因,服务器返回的数据中存在经纬度。

但是在用MJExtension映射到model对象中的时候,精度出现了偏差

比如 104.586936 会变为 104.58693600000000001

然后再转成火星坐标,精度会有一些不同,暂时不知道该如何解决。

// ================================

已解决:

之前创建的model对象是用double类型存储的数据, 如下:

@property (nonatomic, assign) double latitude;

解决方法:
改为用 NSNumber 储存该数据:

@property (nonatomic, strong) NSNumber *latitude;

使用时可以:

Person *person = [Person alloc] init];
double lat = person.latitude.doubleValue;

其他需要高精度的数据都可以用此方法来处理, 可以避免精度丢失.

真实结果是精度该丢失还是丢失,ㄟ( ▔, ▔ )ㄏ,但是在地图上显示时这点精度丢失基本不会影响定位点在地图上的位置,所以还是可以用的。

现在知道的解决方案就是把经纬度用字符串储存和发送,然后使用其他手段转成double使用,可以谷歌一下。

以上.

你可能感兴趣的:(用MJExtension把字典转为model时碰到的坑.)