我觉得答案就在我面前,但我似乎找不到。
我的代码:
- (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,当我需要 $1.01
时它会显示为 $101.00
因此输入似乎是从小数点开始,而我希望它从百位开始小数点。
最佳答案
NSNumberFormater
接收一个数字 并根据您设置的任何样式格式化该数字。如果用户按照您的建议输入 101,那么 101 就是正在格式化的数字。您选择了货币样式,因此您得到了 $101.00
。数量还是101;它只是格式化为看起来像货币金额。
如果您想要 $1.01
,您将必须输入数字 1.01。数字格式化程序不会更改数字。它只是改变了它的显示方式。 1.01 是一个数字; $1.01
是表示为货币的数字。 1.01 不等于 101。数字格式化程序不会更改您输入的数字,只会更改它的显示方式。
关于ios - 使 NSNumberFormatter 始终将输入的最右边两位数视为小数部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18038337/