Domanda

Ho valore intero lungo (es: 2.705.758,126 mila). In NSString

Quando provo a mostrare: NSLog (@ "% i", [myValue integerValue]); esso ritorno:. 2147483647

Come mostrare, confrontare e ecc questa lunga intero

È stato utile?

Soluzione

Prova con

NSLog(@"%lld", [myValue longlongValue]);

Altri suggerimenti

La documentazione raccomanda utilizzando @ "% ld" e @ "% lu" per NSInteger e NSUInteger, rispettivamente. Dal momento che si sta utilizzando il metodo integerValue (al contrario di intValue o longLongValue o qualsiasi altra cosa), che tornerà un NSInteger.

Si dovrebbe avere uno sguardo a Apple documentazione . NSString ha il seguente metodo:

- (long long)longLongValue

Che dovrebbe fare quello che vuoi.

da questo esempio qui, è possibile vedere le conversioni in entrambe le direzioni:

NSString *str=@"5678901234567890";

long long verylong;  
NSRange range;  
range.length = 15;  
range.location = 0;  

[[NSScanner scannerWithString:[str substringWithRange:range]] 
       scanLongLong:&verylong];

NSLog(@"long long value %lld",verylong);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top