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:=(很好,我真的需要一个周末。