9

AFAIK 仅使用 [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

从您链接的页面:

有关详细信息,请参阅IEEE printf 规范

现在来自 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 回答