NSNumberFormatter 有两个方法 stringFromNumber: 和 numberFromString:
stringFromNumber: 把数值展现为字符 ,numberFromString:把字符生成一个数值 object.
你也可以使用 localizedStringFromNumbe
当有时需要处理一些复杂的需求,继承自 NSFormatter 的方法 (例如 getObjectValue:forString:errorDescription, )getObjectValue:forString:range:error: 方法可以指定解析字符串中的某个范围内,并返回那个范围.(如果失败,会表明哪里出现错误) 而且同时会返回 NSError 包含详细的失败原因的实例
Use Formatter Styles to Present Numbers With the User’s Preferences
设置一个数值的格式
NSNumberFormatter
NSNumberFormatterDecimal
NSNumberFormatterCurrenc
NSNumberFormatterPercent
NSNumberFormatterScienti
NSNumberFormatterSpellOu
NSNumberFormatterNoStyle
这些属性都是用户系统设置里面设置的.
你可以使用 setNumberStyle: 方法来设置格式 下面的例子是设置一个日期的格式.
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimal
NSString *formattedNumberString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:122344.4563]];
NSLog(@"formattedNumberString: %@", formattedNumberString);
// Output for locale en_US: "formattedNumberString: formattedNumberString: 122,344.453"
Use Format Strings to Specify Custom Formats
自定义数值格式 使用setPositiveFormat: 和 setNegativeFormat: 两个方法 请看如下例子
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setPositiveFormat:@"###0.##"];
NSString *formattedNumberString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:122344.4563]];
NSLog(@"formattedNumberString: %@", formattedNumberString);
// Output for locale en_US: "formattedNumberString: formattedNumberString: 122,344.45"
Percentages 百分数 百分比显示
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setPositiveFormat:@"0.00%;0.00%;-0.00%"];
NSNumber *four = [NSNumber numberWithFloat:4.0];
NSLog(@"%@", [numberFormatter stringFromNumber:four]);
// output: "400.00%"
如果你用上面显示百分比的方法会很出现一些误解,因为系统会自动乘以100. 可以使用 NSNumberFormatterPercent
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercent
NSNumber *four = [NSNumber numberWithFloat:4.0];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier
[numberFormatter setLocale:usLocale];
NSLog(@"en_US: %@", [numberFormatter stringFromNumber:four]);
// output: "en_US: 400%"
NSLocale *faLocale = [[NSLocale alloc] initWithLocaleIdentifier
[numberFormatter setLocale:faLocale];
NSLog(@"fa_IR: %@", [numberFormatter stringFromNumber:four]);
// output: "fa_IR: ٪۴۰۰"Nomenclature
NSNumberFormatter provides several methods (such as setMaximumFractionDigits
其他一些范例
http://www.iphonesdkarticles.com/2008/11/localizing-iphone-apps-part-1.html
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
http://www.cnblogs.com/xymwbc/archive/2011/09/21/2184196.html
如何限制文本框只能输入数字
在某些情况下,我们可能需要文本框只能输入数字值,或者其他特定值。这里提供了实现的方法。 建立NSNumberFormatter 的子类,增加这个方法,将 formatter 链接至文本框。 - ( BOOL ) isPar
在某些情况下,我们可能需要文本框只能输入数字值,或者其他特定值。这里提供了实现的方法。
- (BOOL) isPartialStringValid: (NSString **) partialStringPtr
{
}