我觉得答案就在我面前,但我似乎找不到它。
我的代码:
- (void)viewDidLoad {
numFormatter = [[NSNumberFormatter alloc] init];
numFormatter.locale = [NSLocale currentLocale];
[numFormatter setMaximumFractionDigits:2];
[numFormatter setDecimalSeparator:@"."];
[numFormatter setAlwaysShowsDecimalSeparator:YES];
[numFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
}
-(void)textFieldDidChange:(UITextField *)textField{
inputLbl.text = [numFormatter stringFromNumber:[NSNumber numberWithDouble:[dummyTextField.text doubleValue]]];
}
如果用户输入101,当我需要$101.00
时,它显示为$1.01
,因此输入似乎从小数点开始,当我希望它从小数点的数百点开始时。< / p>
答案 0 :(得分:2)
NSNumberFormater
接收号码,并根据您设置的样式格式化该号码。如果用户输入101,如您所建议的那样,那么一百零一是正在格式化的数字。您已选择货币样式,因此获得$101.00
。这个数字仍然是101;它只是格式化为货币金额。
如果您需要$1.01
,则必须输入数字1.01。数字格式器不会更改数字。它只是改变了它的显示方式。 1.01是一个数字; $1.01
是表示为货币的数字。 1.01不等于101.数字格式化程序不会更改您输入的数字,只是它的显示方式。