2013-04-02 40 views
2

我目前有一個int值是自定義格式並顯示在標籤中。 int值始終是一個5位數字,我用+符號在十分之一到百分之一之間顯示。如果number = 12345,displayNumber = 123 + 45。StringWithFormat對於int值有一個問題

ViewController.m 

int high = number/100; 
int low = number - (high * 100); 
NSString *displayNumber = [NSString stringWithFormat:@"%d+%d", high, low]; 

我的問題是當數字在十分之一的地方有一個零。如果number = 12304,displayNumber將顯示爲123 + 4,我希望它顯示爲123 + 04。我已經嘗試使用if聲明來低< 10,但是這並沒有很好地與我的其他代碼結合在一起。有什麼簡單的方法可以使低位顯示兩位數字,即使它是一位數字?預先感謝您的時間。

回答

6

試試這個:

NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", high, low]; 
//               ^^ 
//               || 
//               |+-- Two positions 
//               +--- Pad with zeros 

int low = number - (high * 100); 

可以作爲

int low = number % 100; 

優化的語句也可以跳過臨時變量乾脆:

NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", number/100, number%100]; 
+3

有一個原因,他有132k,我們沒有。 – matt

+0

@dasblinkenlight,不錯的一個...謝謝 –

+0

+1爲箭頭 –

0

下面的代碼在特殊情況下等於零時,佔據十分之一的位置。防爆。 number = 12304,displayNumber = 123 + 04。我沒有像建議的dasblinkenlight那樣優化它。謝謝dasblinkenlight!

int high = number/100; 
    int low = number - (high * 100); 


    NSString *displayNumber = [NSString stringWithFormat:@"%d+%02d", high, low];