IT TIP

Objective C에서 3 자리 숫자에 쉼표를 추가하는 방법은 무엇입니까?

itqueen 2020. 10. 27. 23:52
반응형

Objective C에서 3 자리 숫자에 쉼표를 추가하는 방법은 무엇입니까?


숫자가있는 경우 int aNum = 2000000NSString 2,000,000으로 표시 할 수 있도록 형식을 어떻게 지정합니까?


자신의 숫자 서식을 지정하지 마십시오. 거의 확실하게 모든 엣지 케이스를 올바르게 얻거나 가능한 모든 로케일을 올바르게 처리하지 못할 것입니다. NSNumberFormatter숫자 데이터를 지역화 된 문자열 표현으로 형식화 하려면을 사용하십시오 .

당신은 사용하는 것이 NSNumberFormatter인스턴스 메소드를 -setGroupingSeparator:그룹화로 구분 설정 @","(더 좋은 방법이나 [[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator], 감사 @ntesler를) 및 -setGroupingSize:그룹화 구분마다 3 자리 숫자를 넣어.


사용 NSNumberFormatter.

구체적으로 특별히:

NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; // this line is important!

NSString *formatted = [formatter stringFromNumber:[NSNumber numberWithInteger:2000000]];

[formatter release];

기본적으로 NSNumberFormatter현재 로케일을 사용하므로 그룹 구분 기호는 기본적으로 올바른 값으로 설정됩니다. 중요한 것은 숫자 스타일을 설정하는 것을 기억하는 것입니다.


필요한 작업을 수행 하는 정적 메서드NSNumberFormatter 가 있습니다.

int aNum = 2000000;
NSString *display = [NSNumberFormatter localizedStringFromNumber:@(aNum)
                                                     numberStyle:NSNumberFormatterDecimalStyle];

이 방법은 NSNumberFormatter포맷터의 추가 구성을 수행 할 필요가없는 경우 새로 만드는 것보다 조금 더 간결 합니다.


더 쉽게 :

NSNumber *someNumber = @(1234567890);
NSString *modelNumberString = [NSString localizedStringWithFormat:@"%@", someNumber];
NSLog(@"Number with commas: %@", modelNumberString);

동료가 오늘 이걸 가르쳐 줬어요. #놀랄 만한


샘플을 찾는이 게시물을 얻을 수 있으므로 일부를 생각하십시오. 따라서 숫자로 작업하는 경우 다음 매개 변수에주의를 기울이십시오.

setNumberStyle:NSNumberFormatterCurrencyStyle // if you are working with currency

또한

setNumberStyle:NSNumberFormatterDecimalStyle

모든 코드는 ARC 용입니다.

Integer로 작업 중이고 200,000과 같은 결과를 얻어야하는 경우

int value = 200000;
NSNumberFormatter * formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString * newString =  [formatter stringFromNumber:[NSNumber numberWithInteger:value]];

Float로 작업 중이고 200,000.00과 같은 결과를 얻어야하는 경우

float value = 200000;
NSNumberFormatter * formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2]; // Set this if you need 2 digits
NSString * newString =  [formatter stringFromNumber:[NSNumber numberWithFloat:value]];

편집하다

다른 디지털 구분 기호를 사용하려면 NSLocale. NSLocale로케일 식별자에 지정된 코드에 추가 :

[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"]];

또는 현재 로컬 사용 :

[formatter setLocale:[NSLocale currentLocale]];

Swift 버전

let formatter = NSNumberFormatter()
formatter.numberStyle = .DecimalStyle
formatter.maximumFractionDigits = decimalPlaces
let result = formatter.stringFromNumber(NSNumber(double: 8.0))

으로 http://ios.eezytutorials.com


An easy solution could be this. My answer is almost same like @Nazir's answer but with a small trick.

double current_balance = 2000000.00;

NSNumberFormatter * formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
//[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];  //if you want for currency with $ sign
[formatter setMinimumFractionDigits:2]; // Set this if you need 2 digits
[formatter setMaximumFractionDigits:2]; // Set this if you need 2 digits
NSString * currency_format =  [NSString stringWithFormat:@"%@", [formatter stringFromNumber:[NSNumber numberWithDouble:current_balance]]];

For Swift 4.0

let formatter = NumberFormatter()

formatter.numberStyle = .decimal

formatter.minimumFractionDigits = 2

formatter.maximumFractionDigits = 2

let result = formatter.string(from: NSNumber(value: 123456))

참고URL : https://stackoverflow.com/questions/2233824/how-to-add-commas-to-number-every-3-digits-in-objective-c

반응형