用MJExtension把字典轉(zhuǎn)為model時碰到的坑.

因為app原因,服務(wù)器返回的數(shù)據(jù)中存在經(jīng)緯度。

但是在用MJExtension映射到model對象中的時候,精度出現(xiàn)了偏差

比如 104.586936 會變?yōu)?104.58693600000000001

然后再轉(zhuǎn)成火星坐標(biāo),精度會有一些不同,暫時不知道該如何解決。

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

已解決:

之前創(chuàng)建的model對象是用double類型存儲的數(shù)據(jù), 如下:

@property (nonatomic, assign) double latitude;

解決方法:
改為用 NSNumber 儲存該數(shù)據(jù):

@property (nonatomic, strong) NSNumber *latitude;

使用時可以:

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

其他需要高精度的數(shù)據(jù)都可以用此方法來處理, 可以避免精度丟失.

真實結(jié)果是精度該丟失還是丟失,ㄟ( ▔, ▔ )ㄏ,但是在地圖上顯示時這點精度丟失基本不會影響定位點在地圖上的位置,所以還是可以用的。

現(xiàn)在知道的解決方案就是把經(jīng)緯度用字符串儲存和發(fā)送,然后使用其他手段轉(zhuǎn)成double使用,可以谷歌一下。

以上.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容