2012-11-29 22 views
9

AFAIK è impossibile utilizzare solo [NSString stringWithFormat: @ "% d"] poiché non ci sono specificatori per la visualizzazione esplicita della visualizzazione +, almeno non ho lo trovo a Apple Developer String Format Specifiers
Quindi sembra che devo usare NSNumberFormatter nel mio caso. Ho trovato come impostare la rappresentazione del segno più, ma non riesco a capire come raggiungere il mio obiettivo. Ho provatoCome formattare int a NSString visualizzando il segno + per i numeri positivi in ​​iOS

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

ma temo che taglierebbe i numeri GT da 9 a 1 cifra e non voglio quello. Voglio solo visualizzare qualsiasi int positivo con + e qualsiasi negativo con -. È questo il modo giusto forse:

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

risposta

18

Dalla pagina molto si è collegato:

Per maggiori dettagli, vedere la IEEE printf specification .

Ora dalle specifiche IEEE printf:

+ Il risultato di una conversione firmato deve sempre iniziare con un segno ('+' o '-'). La conversione inizia con un segno solo quando viene convertito un valore negativo se questo flag non è specificato.

Esempio:

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

Risultato:

+3.455677 
2

Basta usare:

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

CHE SARA 'divertente quando il numero è negativo. –

+0

@HermannKlecker; quello era un errore di battitura :) Grazie per la notifica –

+0

Grazie per la modifica –

7

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

8
[numberFormatter setPositivePrefix:@"+"];