8

私は NSInteger (値 60000 など) を持っていますが、それを文字列に変換すると、「60000」ではなく「60,000」を取得したいと考えています。それを行う方法はありますか?ありがとう。

4

4 に答える 4

19

数値フォーマッタを使用します。

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setNumberStyle:NSNumberFormatterDecimalStyle]; // to get commas (or locale equivalent)
[fmt setMaximumFractionDigits:0]; // to avoid any decimal

NSInteger value = 60000;

NSString *result = [fmt stringFromNumber:@(value)];
于 2013-01-09T07:46:14.457 に答える
3

数値フォーマッタを使用できます。

NSNumberFormatter* numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
NSString *numberString = [numberFormatter stringFromNumber: [NSNumber numberWithInteger: i]];
于 2013-01-09T07:48:09.617 に答える
2

これを試して、

NSString *numString = [NSString stringWithFormat:@"%d,%d",num/1000,num%1000];
于 2013-01-09T07:46:50.043 に答える
-1

を使用してNSNumberFormatter、数値データをローカライズされた文字列表現にフォーマットします。

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

これを行うと、「$60,000.00」が得られます

その後、これを行うことで、$と'。'(10進数)の符号を削除できます。

 NSString *Str = [display stringByReplacingOccurrencesOfString:@"$" withString:@""];

 NSString *Str1 = [Str stringByReplacingOccurrencesOfString:@"." withString:@""];

NSString *newString = [Str1 substringToIndex:[Str1 length]-1];

NSString *newString1 = [newString substringToIndex:[newString length]-1];

'newString1'は、必要な結果を提供します。

于 2013-01-09T08:06:29.210 に答える