如何正确格式化这个NSString?

时间:2011-04-15 17:29:42

标签: objective-c

我想格式化一个看起来像这样的字符串:

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。知道如何继续以及使用什么代码?那有没有图书馆?

2 个答案:

答案 0 :(得分: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 :(得分:1)

x.xxx表格中输入您的号码后,您可以执行以下操作:

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

这是否回答了你的问题?我不太确定它确实存在,所以请更新你的问题,我会尽力帮助你。