我正在寻找一种将字符串格式化为数字并在文本字段中显示的方法
例如:我的号码为"1000"
,我想将其转换为"1.000"
或100000
转换为100.000
。或1000000
进入1.000.000
。如果您知道此解决方案,请帮助我
由于
答案 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]];