9

+表示を明示的に表示するための指定子がないため、[NSString stringWithFormat:@ "%d"]だけを使用することは不可能です。少なくとも、Apple Developer String Format Specifiers
で見つかりませんでした。 したがって、NSNumberFormatterを使用する必要があるようです。私の場合。プラス記号表現を設定する方法を見つけましたが、目標を達成する方法がわかりません。私は試した

    NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
    [numberFormatter setPositiveFormat:@"+0"];
    NSString strNumber = [numberFormatter stringFromNumber:[NSNumber numberWithInt:intSomeNumber]];

しかし、GT 9の数字を1桁にカットするのではないかと心配しているので、それは望ましくありません。+を使用して正の整数を表示し、-を使用して負の整数を表示したいだけです。これはおそらく正しい方法ですか?

NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setPositiveFormat:@"+#"];
NSString strNumber = [numberFormatter stringFromNumber:[NSNumber numberWithInt:intSomeNumber]];
4

4 に答える 4

18

リンクしたページから:

詳細については、IEEEprintf仕様を参照してください。

IEEE printf仕様から:

+符号付き変換の結果は、常に符号('+'または'-')で始まるものとします。このフラグが指定されていない場合、負の値が変換された場合にのみ、変換は符号で開始されます。

例:

NSLog(@"%+f", 3.455677);

結果:

+3.455677
于 2012-11-29T11:49:53.583 に答える
8
[numberFormatter setPositivePrefix:@"+"];
于 2012-11-29T11:51:44.783 に答える
7

使用する[NSString stringWithFormat:@"%+d", intSomeNumber]

于 2012-11-29T11:48:43.983 に答える
2

使用するだけです:

NSString *strNumber = [NSString stringWithFormat:@"%+d",intSomeNumber];
于 2012-11-29T11:47:33.497 に答える