2013-04-02 1 views
2

현재 사용자 정의 된 형식의 레이블에 int 값이 있습니다. int 값은 항상 5 자리 숫자이며 10 분과 100 분의 1 사이에 + 기호가 표시됩니다. number = 12345이면 displayNumber = 123 + 45입니다.StringWithFormat int 값에는 하나의 문제가 있음

ViewController.m 

int high = number/100; 
int low = number - (high * 100); 
NSString *displayNumber = [NSString stringWithFormat:@"%d+%d", high, low]; 

제 10 위의 숫자가 0 인 경우 문제가됩니다. number = 12304이면 displayNumber는 123 + 04로 표시되도록 123 + 4로 표시됩니다. 낮은 < 10 if 문을 사용하여 시도했지만 그 나머지 코드를 잘 통합하지 않습니다. 한자리 숫자라도 낮은 두 자리 숫자를 표시하는 간단한 방법이 있습니까? 시간 내 미리 감사드립니다.

답변

6

이 시도 :

NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", high, low]; 
//               ^^ 
//               || 
//               |+-- Two positions 
//               +--- Pad with zeros 

int low = number - (high * 100); 

int low = number % 100; 

으로 최적화 할 수있는 문을 또한 모두 임시 변수를 건너 뛸 수 있습니다 :

NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", number/100, number%100]; 
+3

그는 132k를 보유하고 있고 그렇지 않습니다. – matt

+0

@ dasblinkenlight, 좋은 분 ... 덕분에 –

+0

+1 용 –

0

다음 코드는 0 일 때 특정 상황의 10 위를 유지합니다. 전의. number = 12304, displayNumber = 123 + 04. 내가 dasblinkenlight 제안처럼 그것을 최적화하지 않았다. 감사합니다 dasblinkenlight!

int high = number/100; 
    int low = number - (high * 100); 


    NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", high, low];