2011-04-15 94 views
0

我想格式化字符串,看起來像:如何正確地格式化此NSString?

0.0580 which means 5.8 ct 

0.1580 which means 15.8 ct 

1.1580 which means 1.15 € 

因此字符串可以在x.xxxx格式什麼。現在我開始格式化了,但我是Objective-C和iOS的新手。

首先我想刪除最後一個字符,因爲最後一個數字並不重要,我不想整數。

NSString *responseString = [responseData 
        substringWithRange:NSMakeRange(1, 
          [responseData length]-2)]; 

這給了我x.xxx至今。任何想法如何繼續和使用什麼代碼?那裏有任何圖書館嗎?

+0

值是來自浮點數還是NSNumber對象?因爲將來編碼會有所不同。 – 2011-04-15 17:48:08

+0

再次讀你的問題,你想從字符串中提取數字嗎? – 2011-04-15 17:59:33

回答

3

看看NSNumberFormatter類。它應該做你需要的。事情是這樣的:

NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init]; 
NSNumber *myNumber = [NSNumber numberWithDouble:[@"0.158" doubleValue]]; 
[numFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
NSString *formattedValue = [numFormatter stringFromNumber:myNumber]; 
[numFormatter release]; 

也期待在NSNumberFormatterStyle和NSNumberFormatterBehavior控制格式。

1

一旦你有你的形式​​數,你可以這樣做:

float floatValue = [@"0.158" floatValue]; // Get your string as a number. 
floatValue *= 100; // Turn '0.158' into '1.58' 

這是否回答你的問題?我不太確定它的確如此,因此更新您的問題,我會盡力幫助您。