2011-04-15 85 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' 

这是否回答你的问题?我不太确定它的确如此,因此更新您的问题,我会尽力帮助您。