Objective c 如何正确格式化此NSString?

Objective c 如何正确格式化此NSString?,objective-c,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

我想格式化如下所示的字符串:

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。你知道如何进行和使用什么代码吗?这上面有图书馆吗?

一旦你把你的号码写在
x.xxx
表格中,你就可以做如下事情:

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

这回答了你的问题吗?我不太确定它是否有效,因此请更新您的问题,我将尽力为您提供更好的帮助。

一旦您将您的号码以
x.xxx
的形式输入,您可以执行以下操作:

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

这回答了你的问题吗?我不太确定它是否有效,因此请更新您的问题,我将尽力为您提供更好的帮助。

看看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来控制格式。

查看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来控制格式。

值是来自浮点还是NSNumber对象?因为将要进行的编码将不同。再次阅读您的问题,您想从字符串中提取数字吗?不,我不想将其转换为整数(这不是我的目标),我只想格式化初始字符串,以便用户理解我想显示钱,0.0580转化为5.8克拉…我的中学老师肯定不同意1.1580将四舍五入为1.15欧元。它将正确地四舍五入到1.16欧元,对吗?这是截断与算术取整。那么您是要截断还是四舍五入这个数字?0.0088是什么?值是来自浮点还是NSNumber对象?因为将要进行的编码将不同。再次阅读您的问题,您想从字符串中提取数字吗?不,我不想将其转换为整数(这不是我的目标),我只想格式化初始字符串,以便用户理解我想显示钱,0.0580转化为5.8克拉…我的中学老师肯定不同意1.1580将四舍五入为1.15欧元。它将正确地四舍五入到1.16欧元,对吗?这是截断与算术取整。那么您是要截断还是四舍五入这个数字?0.0088会是什么呢?当我记录它时,intValue实际上返回0,这并不奇怪,因为
(int)0.158
实际上是0。。。尝试
floatValue=[@“0.158”floatValue]。虽然我也不确定这是否真的回答了你的问题。@ArtWorkAD&walkytalky:=(很好,我真的需要一个周末。当我记录它时,intValue实际上返回0,这并不奇怪,因为
(int)0.158
确实是0…尝试
浮点值=[@“0.158”浮点值]
。虽然我也不确定这是否真的能回答你的问题。@ArtWorkAD&walkytalky:=(很好,我真的需要一个周末。