2011-03-08 66 views
0

所以我試圖把distanceFromLocation和顯示爲「8英里」或「1.5英里」,但我最終得到「93129432英里」。在線查看內容,瞭解它出錯的地方。distanceFromLocation to string is off off

double roundDouble = round(returnedDouble); 
    NSNumber *mylngDoubleNumber = [NSNumber numberWithDouble:roundDouble]; 

    if(latDouble == 0 || lngDouble == 0 || roundDouble == 0){ 
     NSString *str = [NSString stringWithFormat:@"0 mi."]; 
     self.distance.text = str; 
    }else { 
     NSString *lngDoubleString = [mylngDoubleNumber stringValue]; <-- ok here '98' 
     NSString *str = [NSString stringWithFormat:@"%d mi.",lngDoubleString]; <-- bad here '93129432' 

     self.distance.text = str; 
    } 
+0

所以,計算工作正常,但字符串格式不? – 2011-03-08 04:14:25

+0

將@「%d mi」更改爲@「%@ mi」或 @「%d mi。」,將lngDoubleString更改爲@「%f mi。」,[lngDoubleString floatValue]; – Satya 2011-03-08 05:04:46

回答

3

你的格式不正確。 %d與整數一起使用。 %f是浮動和雙打。看看這個問題:Limit a double to two decimal places

編輯:再次讀你的代碼,你不能格式化字符串。你需要格式化雙面本身。

0

它應該是[NSString stringWithFormat:@"%@ mi", lngDoubleString];,因爲你正在格式化一個字符串。