2012-03-08 7 views
1

저는 신용 계산기를 프로그래밍하고 있습니다. 사용자가 숫자를 입력 할 때 (로컬) 천 단위 구분 기호로 숫자를 형식화하고 싶습니다.NSNumberFormatter 텍스트 필드 천 단위 구분 기호

예를 들어 100000100.000 (로컬)이어야합니다.

예를 들어 어떻게 할 수 있습니까?

NSNumberFormatter *nf = [[[NSNumberFormatter alloc] init] autorelease]; 
[nf setNumberStyle: NSNumberFormatterDecimalStyle]; 
[nf setRoundingMode: NSNumberFormatterRoundHalfUp]; 
[nf setMaximumFractionDigits: 2]; 

double loanAmount = [[nf numberFromString: tbxLoanAmount.text] floatValue]; 
double intRate = [[nf numberFromString: annualInterestRate.text] floatValue]; 
double NRate = [[nf numberFromString: NInterestRate.text] floatValue]; 
double years = [[nf numberFromString: noOfYears.text] floatValue]; 
double residual = [[nf numberFromString: residualvalue.text] floatValue]; 

감사합니다.

D

+0

당신은'이 100.000'는'100000' 다른 방법은 주위를가되어야 의미하지 않는다? 또한'NSNumberFormatter'는 기본적으로 현재 로케일 형식을 가지고 있지 않습니까? 그렇게하지 않습니까? – yuji

+0

100000은 100.000이되어야한다고 생각합니다. – user1258006

+0

천 단위 구분 기호가'.'이면 문자열이'100.000'이면 그 숫자는 십만이어야합니다, 그렇지 않습니다? – yuji

답변

3

당신은 당신의 수치 포매터에 다음을 설정하려고 할 수 있습니다

[nf setGroupingSize:3]; 
[nf setCurrencyGroupingSeparator:@"."]; 

// you should create a string from number 
NSNumber n = [NSNumber numberWithLong: 100000]; 

NSString str = [nf stringFromNumber: n]; 

NSLog(@"My number: %@", str); 
+0

아니, 다시 똑같은! 나는 그것을 일찍 시도했다! 내가 어디 잘못 됐는지 몰라! – user1258006

+0

방금 ​​전화 번호로 문자열을 만들지 않는다는 것을 알고 있습니다. 통화 그룹과 같은 서식 설정은 숫자로 된 문자열을 만드는 경우에만 사용됩니다. 또는 귀하의 사례를 완전히 오해 한 것입니까? – GeT

+0

네, 맞습니다! – user1258006

관련 문제