2013-10-29 81 views
-1

哪個dataType將返回值(37.961498),因爲它是?哪個dataType將返回值(37.961498),因爲它是?雙重無效

我正在MapView中工作。其中,目前我正在設置註釋,因此我必須設置CLLocationCoordinate2DMake,並從googleAPI解析出一些lat和lng(例如:lat =「37.9615000」和lng =「60.5566000」)。我有字符串中的值,因此我將sting轉換爲double,然後分配。但它沒有幫助。請有人幫助我。

double int1=[num1s floatValue]; 
    double int2=[num2s floatValue]; 
    NSLog(@" %f %f ",int1,int2); 
    annotation.coordinate=CLLocationCoordinate2DMake(int1, int2); 

實際值是:37.9615000,60.5566000 值我的NSLog得到:37.961498,60.556599

在此先感謝。

更多的解釋和理由,爲什麼我需要確切值:

我需要爲中國設置註釋憑藉其經緯度和LAN(LAT = 「53.5609740」; LNG = 「134.7728099」)

不過,雖然從字符串轉換再次值更改

enter image description here

+6

[每臺計算機科學家應該知道浮點運算什麼(http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) –

+0

NSString ....... –

+0

順便問一句,你的問題是什麼?爲什麼你需要確切的結果? –

回答

2

當轉換stringdouble,你應該使用doubleValue代替floatValue

double int1=[num1s doubleValue]; 
double int2=[num2s doubleValue]; 
NSLog(@" %f %f ",int1,int2); 
annotation.coordinate=CLLocationCoordinate2DMake(int1, int2); 

也並不重要,但我不建議在命名兼作INT1和INT2很可能在某些時候

+0

和NSLog是:5.356097e + 01 1.347728e + 02 :(dint幫助我需要得到53.5609740 134.7728099。 –

+0

@SiddarthHailstorm - 你可能想要改變你的格式來顯示所有的數字 - 'NSLog(@「%20.16f%20.16f」,int1,int2);' –

+0

它的現在:53.5609740000000016 134.7728098999999986我需要53.5609740 134.7728099因爲一分鐘的值會改變註釋。還有另外一個問題,對於你來說,對於NSLOg它沒問題!如何改變「annotation.coordinate = CLLocationCoordinate2DMake(int1,int2);」??? –

1
double int1=[num1s floatValue]; 
double int2=[num2s floatValue]; 
NSLog(@" %0.7f %0.7f ",int1,int2); 
annotation.coordinate=CLLocationCoordinate2DMake(int1, int2); 

閱讀String Format Specifiers更多的信息給你造成混亂。

+0

你的代碼返回:53.5609741210937500 134.7728118896484375我需要的僅僅是53.5609740 134.7728099。謝謝 –

+1

它應該工作。打印數字時,請再次檢查您正在使用的格式。 –

+0

對不起,哥們!它現在完成了!它的印刷準確,但如何實現這一點座標? annotation.coordinate = CLLocationCoordinate2DMake(int1,int2); ?我將如何在代碼中添加這些%0.7?你能告訴我語法嗎? –

2
annotation.coordinate=CLLocationCoordinate2DMake([nums doubleValue], [int2 doubleValue]); 

試試這個

+0

no it dint help。check server –

相關問題