2012-06-19 4 views
7

Chciałbym przekonwertować numery na krótszą formę przy użyciu NSNumberFormatter.NSNumberFormatter od 13000 do 13K

Na przykład: od 23000, aby uzyskać 23K.

Jak mogę to zrobić, używając NSNumberFormatter?

Wiem, że możliwe jest samodzielne obliczenie, ale w moim przypadku nie jest to właściwa droga.

+0

Czy chcesz, aby 23340 również stało się 23 kB, czy nie? – Lolloz89

+0

@ Lolloz89 miał właśnie zadać to samo. A 23850? Czy powinno to być 23k lub 24k? – Novarg

+0

Chodzi o to, że sufiks "k" nie jest rozpoznawany jako wzorzec standardowy i międzynarodowy. W każdym razie myślę, że jeśli chcesz użyć tego wzoru, to dlatego, że nie chcesz być tak precyzyjny w reprezentowaniu wartości, więc domyślam się, że 23890 -> 23k. Napiszę odpowiedź, aby to zrobić bez użycia NSNumberFormatter. – Lolloz89

Odpowiedz

4

Sufiks "K" nie jest rozpoznawany jako standard, więc nie można tego zrobić za pomocą NSNumberFormatter. w każdym razie jest to prosty sposób na zrobienie tego.

-(NSString *)kFormatForNumber:(int)number{ 
    int result; 
    if(number >= 1000){ 
     result = number/1000; 

     NSString *kValue = [NSString stringWithFormat:@"%dk",result]; 
     return kValue; 
    } 
    return [NSString stringWithFormat:@"%d",number]; 
}