2011-02-10 10 views
5

Jaki jest prawidłowy sposób reprezentowania podwójnej wartości jako NSString? W moim kodzie, to jest obliczanie lub raczej robi jakieś zaokrąglenie .. Nie jestem pewien. Poniżej znajduje się mój kod;Reprezentuj podwójną wartość jako NSString

X = [NSString stringWithFormat:@"%d", [abc doubleValue] - [xyz doubleValue]]; 

jestem coraz ABC 69206000000, 31687000000 xyz jest, X 58720256

Proszę mi pomóc.

Odpowiedz

13

Użyj modyfikatora formatu %f, aby wyświetlić podwójną wartość - kod %d w kodzie odnosi się do wartości całkowitej. (Aby uzyskać więcej informacji, patrz String Format Specifiers).

+5

'% f' wyświetla wartość zmiennoprzecinkową. Poprawną odpowiedzią jest '% lf' dla long float (double). – svoisen

+0

Specyfikatory formatu NSString firmy Apple (https://developer.apple.com/library/mac/documentation/cocoa/conceptual/strings/articles/formatSpecifiers.html) mówią, że '% f' to" 64-bitowe zmienne- numer punktu ("double"). " Co więcej, argument "l" (pod tabelą 2 dla modyfikatorów długości) udokumentowany jest tylko dla 'd',' o', 'u',' x' lub 'X'. – Tim

+0

Co więcej, tabela 3 jednoznacznie mówi: "'% f' działa dla zmiennych i podwójnych podczas formatowania ... " – Tim

1

% d oznacza liczbę całkowitą. Użyj% f. Przeczytaj specyfikatory formatu.

3

% d jest dla liczb całkowitych, więc otrzymasz efekt funky w postaci podwójnej lub zmiennoprzecinkowej. Spróbuj to zamiast:

NSString *str = [NSString stringWithFormat:@"%f", [abc doubleValue] - [xyz doubleValue]]; 
7

Zastosowanie %lf dla podwójnej wartości

X = [NSString stringWithFormat:@"%lf", [abc doubleValue] - [xyz doubleValue]]; 

nadzieję, że to pomoże.

Powiązane problemy