2012-02-10 43 views
0

我有這樣一個NSNumber例如= 1978,我想將其轉換爲:1K9,seconde例如:35700轉換爲:35K7(其中「k」是公里,「M」是米,我怎麼能做到這一點NSNumber和十進制值

感謝

+0

你在哪裏寫了你的例子中的任何「M」? – 2012-02-10 14:05:46

+0

例如我有:1790M(米),我想將它轉換爲這樣的公里:1K7,另一個示例:34567M我想要:34K5謝謝 – samir 2012-02-10 14:09:18

回答

1

基本上可以使用內部號碼的數據。 假設你在基於計值,那麼您可能想是這樣的:

NSNumber *sourceValue = ... // your NSNumber value from any source 
int meters = sourceValue.intValue; 
int km = floor(meters/1000);   // only your kilometers 
int sub_km = meters % 1000;    // only the part behind the kilometers 
int first_sub_km = floor(sum_km/100); // the first digit of the subrange 
NSString *readable = [NSString stringWithFormat:@"%iK%i", km, first_sub_km]; 

首先,拆分米,進入< = 1000> 1000 那你只好把那出格式化,K之間。

2
int temp; 
    NSNumber *yourNumber;//the number you enter from some where 
    NSString *newValue; 

    if([yourNumber intValue]>1000){ 
     temp = [yourNumber intValue] % 1000 ;//your number module 1000 
     newValue= [[temp stringValue]stringByAppendingString:@"K"]; 

    } 

注:我沒有我的Mac和我在一起,如果[temp stringValue]提供任何worning &錯誤,請通知我

+0

這不是確切的答案,您應該添加其餘的您的號碼以相同的方式與字符串相關聯。 – 2012-02-10 14:05:17

0

自己寫的NSNumberFormatter的子類。在這個子類中你可以實現計算邏輯。

邏輯可能看起來像這樣。

  1. Devide由thousend值,並添加你的「K」
  2. ,如果你想有上百第一位獲得你的價值的thired最後一位數字
  3. 返回新的字符串
2

方法如下:

NSNumber *initialNumber = [NSNumber numberWithInt:35700]; 
NSString *resultString = [NSString stringWithFormat:@"%iK%i", floor(initialNumber/1000), floor((initialNumber % 1000)/100)];