2012-11-29 27 views
9

由於沒有顯式地顯示+顯示的指示符,所以僅使用[NSString stringWithFormat:@「%d」],AFAIK是不可能的,至少我didn沒有找到它在Apple Developer String Format Specifiers
所以它看起來像我必須使用NSNumberFormatter在我的情況。我發現如何設置加號表示,但無法弄清楚如何實現我的目標。我試過如何將int格式化爲NSString並在iOS中顯示正數的+符號

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]]; 

回答

18

從一頁面,您鏈接:

有關詳細信息,請參閱IEEE printf specification

現在從IEEE的printf規格:

+ 一個符號轉換的結果應始終以符號開頭( '+' 或 ' - ')。只有當 負值被轉換時,如果未指定此標誌,轉換應以符號開頭。

例子:

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

結果:

+3.455677 
2

只需使用:

NSString *strNumber = [NSString stringWithFormat:@"%+d",intSomeNumber]; 
+1

這會是有趣的當數爲負。 –

+0

@HermannKlecker;這是一個錯字:)感謝您通知 –

+0

感謝您的編輯 –

7

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

8
[numberFormatter setPositivePrefix:@"+"]; 
相關問題