2012-03-08 12 views
1

私はクレジット計算機をプログラミングしています。ユーザーが番号を入力したときに、(ローカル)桁区切り記号で数値を書式化します。NSNumberFormatterテキストフィールド1000セパレータ

たとえば、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'ならそれから得られる数字は10万でなければなりません? – 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

関連する問題