ios上的格式数字

时间:2014-04-12 15:08:30

标签: objective-c

我正在寻找一种将字符串格式化为数字并在文本字段中显示的方法

例如:我的号码为"1000",我想将其转换为"1.000"100000转换为100.000。或1000000进入1.000.000。如果您知道此解决方案,请帮助我

由于

3 个答案:

答案 0 :(得分:2)

如果要将数字格式化为货币,则需要使用NSNumberFormatter。但是,其他答案是错误的,因为它们会告诉您使用错误的numberStyle或告诉您更改格式字符串。这些都是不正确的。

首先,您需要NSNumberFormatter

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];

接下来,您需要告诉它您要格式化货币:

formatter.numberStyle = NSNumberFormatterCurrencyStyle;

或者,如果您希望以特定货币格式化商品,可能设置货币代码:

formatter.currencyCode = @"USD";

或者,如果您希望根据不是用户默认语言环境的语言环境设置来格式化内容,则可以设置语言环境:

formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_GB"];

如果你要运行这四行代码,你会得到NSNumberFormatter格式NSNumber美元,但根据英国的地区情况。区域设置定义了货币符号的位置(在数字之前或之后),小数分隔符(. vs ,),千位分隔符(, vs {{1} }),等等。

货币代码定义了货币符号($等)。

默认情况下,区域设置为£,货币代码是当前区域设置的代码。

但要记住的一件非常重要的事情是,这只是格式货币。 为您执行任何货币转换。它假定您提供的任何[NSLocale currentLocale] 已经已经以目标货币为单位。

答案 1 :(得分:1)

您可以按如下方式使用NSNumberFormatter类。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSLog(@"%@", [formatter stringForObjectValue:@2333999878]);

此类功能非常强大,还允许您在格式化

旁边本地化货币

答案 2 :(得分:-2)

你可以这样做:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setPositiveFormat:@"#.###"];
NSString *string = [numberFormatter stringFromNumber:[NSNumber numberWithInt:1000]];