2011-03-08 2 views
0

입니다. 따라서 distanceFromLocation을 "8 miles"또는 "1.5 miles"로 표시하려하지만 "93129432 miles"로 끝납니다. 주석이 잘못된 부분을 참조하십시오.distanceFromLocation to string은

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

계산이 올바르게 작동하지만 문자열 서식이 올바르지 않습니까? –

+0

@ "% d 마일"을 @ "% @ mi"또는 @ "% d 마일"로 변경하십시오. lngDoubleString을 @ "% f mi."로 변경하십시오. [lngDoubleString floatValue]; – Satya

답변

3

형식이 잘못되었습니다. % d는 정수와 함께 사용됩니다. % f는 실수와 복식을 나타냅니다. 이 질문을 확인하십시오 : Limit a double to two decimal places

편집 : 코드를 다시 읽으면 문자열의 서식을 지정할 수 없습니다. 이중 자체를 형식화해야합니다.

0

문자열을 서식 지정하기 때문에 [NSString stringWithFormat:@"%@ mi", lngDoubleString];이어야합니다.

관련 문제