2012-03-17 7 views
0

텍스트 필드에 숫자가 표시됩니다. "1234"로 번호를 표시하지만 "12345"로 표시되는 다른 큰 번호를 입력하면 "1,234"의 형식으로 표시하고 싶지만 123456을 입력하면 "12,345"로 표시하고 싶습니다. "123,456"으로 표시하십시오. 이 번호를 원하는 형식으로 어떻게 포맷합니까?번호를 어떻게 표시 할 수 있습니까?

-(void)clickDigit:(id)sender 
{ 
    NSString * str = (NSString *)[sender currentTitle]; 
    NSLog(@"%@",currentVal); 


    if([str isEqualToString:@"."]&& !([currentVal rangeOfString:@"."].location == NSNotFound)) 
    { 
     return; 
    } 
    if ([display.text isEqualToString:@"0"]) 
    { 

     currentVal = str; 
     [display setText:currentVal]; 
    } 

    else if([currentVal isEqualToString:@"0"]) 
    { 
     currentVal=str; 
     [display setText:currentVal]; 

    } 
    else 
    { 
     if ([display.text length] <= MAXLENGTH) 
     { 
      currentVal = [currentVal stringByAppendingString:str]; 
      NSLog(@"%@",currentVal); 
      [display setText:currentVal]; 
     } 
     currentVal=display.text; 
    } 
} 

이것은 텍스트 필드에 숫자를 표시하는 데 사용하는 코드입니다.


편집 : 나는 다음에 내 코드를 변경하지만 여전히 올바른 형식 숫자하지 않는 :

if ([display.text length] <= MAXLENGTH) { 
    currentVal = [currentVal stringByAppendingString:str]; 
    NSNumberFormatter * myNumFormatter = [[NSNumberFormatter alloc] init]; 
    [myNumFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
    NSNumber *tempNum = [myNumFormatter numberFromString:currentVal]; 
    NSLog(@"My number is %@",tempNum); 
    [display setText:[tempNum stringValue]]; 
    currentVal=display.text; 
} 
+0

http://stackoverflow.com/questions/5406366/formatting-a-number-to-show-commas-and-or-dollar-sign-에서 허용되는 답변 http://stackoverflow.com에서 질문을 확인하십시오./a/5407103/928098 당신의 문제를 해결할 것 같습니다. –

+0

OP는 링크 된 답변에서와 같이 표시된 문자열에 달러 기호가 필요하지 않습니다. – sch

답변

1

당신은 이런 식으로 작업을 수행 할 수 있습니다

int myInt = 12345; 
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
formatter.numberStyle = NSNumberFormatterDecimalStyle; 
NSNumber *number = [NSNumber numberWithInt:myInt]; 
NSLog(@"%@", [formatter stringFromNumber:number]); // 12,345 

편집

이것을 올바르게 구현하지 않았습니다. 핵심은 [formatter stringFromNumber:number]을 사용하여 숫자의 문자열 표현을 얻는 것이지만 그렇게하지 않았습니다. NSNumberFormatter reference page에 방법의 목록을 읽어 먼저

currentVal = [currentVal stringByAppendingString:str]; 
NSNumberFormatter * myNumFormatter = [[NSNumberFormatter alloc] init]; 
[myNumFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
NSNumber *tempNum = [myNumFormatter numberFromString:currentVal]; 
NSLog(@"My number is %@",tempNum); 
[display setText:[myNumFormatter stringFromNumber:tempNum]]; // Change this line 
currentVal=display.text; 
NSLog(@"My formatted number is %@", currentVal); 
+0

원하는 결과를 제공하지 않습니다. 여전히 쉼표를 구분 기호로 사용하지 않는 12345로 표시됩니다. 우리는 문자열 분리자를 추가해야한다고 생각합니다. – Karthikeya

+0

@Karthikeya - 이상합니다. 업데이트 된 코드를 게시 할 수 있습니까? – sch

+0

내 편집을 확인할 수 있습니까? – Karthikeya

0

: 그래서으로 코드를 변경합니다. 그렇게하면 천 단위 구분 기호 기능을 사용하려면 -setHasThousandSeparators: 메서드를 사용해야한다는 것을 알게 될 것입니다. -setThousandSeparator: 메서드를 사용하여 사용자 정의 구분 기호를 설정할 수도 있지만 그렇게 할 필요는 없습니다.

+0

사람에게 감사하지만 그 두 가지 방법은 Xcode로 인식하지 못합니다 .... – Karthikeya

관련 문제