1

コンマを文字列またはフロートに追加する方法を見つける方法を見つけようとしています。10.50 から 50000000000.99 までの浮動小数点数があり、3 桁ごとにコンマを追加するようにフォーマットできるようにしたいと考えています (浮動小数点数は含みません)。NSNumberFormatterDecimalStyle または NSNumberFormatterCurrencyStyle を使用できる NSNumberFormatter があることは知っていますが、どちらも文字列/フロートでは機能しません。float を 2 つの文字列に分割してから、% of length == 3 の計算を実行しようとしましたが、非常に面倒になり始めました。私はJavaで似たようなことをしましたが、iOSではもっと難しいようです。

誰か提案やアイデアがあれば教えてください。情報やガイダンスをいただければ幸いです。前もって感謝します。

編集:そこに投稿があることは知っていますが、ゼロで終わる doubles/floats/strings の問題を解決しているようには見えません。たとえば、double が 16.00 の場合、フォーマッタはそれを 16 にフォーマットします。1234.80 の場合も同じです。フォーマッタはそれを 1,234.80 ではなく 1,234.8 にフォーマットします。それが私が探しているものです。

4

2 に答える 2

3

ここで NSNumberFormatting に関するこの投稿を表示

その要点は、float または double を NSNumber に変換し、NSNumber で NSNumberFormatter を使用して、目的の形式の NSString を取得することです。何かのようなもの:

double doubleNum = 1000.002;

// Change double to nsnumber:
NSNumber *num = [NSNumber numberWithDouble:doubleNum];

// Set up the formatter:
NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];
[numFormatter setUsesGroupingSeporator:YES];
[numFormatter setGroupingSeparator:@","];
[numFormatter setGroupingSize:3];

// Get the formatted string:
NSString *stringNum = [numFormatter stringFromNumber:num];

NSLog(@"%@",stringNum);
// prints out '1,000.002'

試してみてください。適用できるさまざまな書式設定がたくさんあります。

于 2013-11-11T23:30:29.670 に答える